1e rij uit database verwijderen

Status
Niet open voor verdere reacties.

the_dannyboy

Gebruiker
Lid geworden
2 jan 2002
Berichten
968
Hey iedereen!

Ik wil uit een kolom in m'n database de 1e rij verwijderen. Ik heb nu deze code, maar daarbij krijg ik steeds de error: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ...

PHP:
$query = "SELECT IdeeUser FROM Ideeën";
 $result = mysql_query($query)
     or die("Query failed");

while ($array = mysql_fetch_array($result)) {
	$query = "delete FROM Ideeën WHERE IdeeUser = $array[0]";
	$result = mysql_query($query);
}
 
Alleen de 1e rij ? Dan heb je namelijk geen while() lus nodig. En in welke volgorde bedoel je de eerste rij ? Tis maar net waar je op sorteerd :)
Welke MySQL versie heb je draaiende ? (script kan korter als je 4.0 of hoger hebt draaien).
 
Ik heb in een kolom een aantal waarden staan.

Daarvan wil ik de 1e (of de 2e of de 3e, maar net welke ik wil kiezen) verwijderen.

En MySQL versie 4.0.18-standard
 
*na MSN overleg, je bedoeld dus dat je 1 specifieke rij wil verwijderen, niet de 1e rij :)*
Dan zal ik gewoon ff je code fixen zodat hij (met die while() dus) wel werkt.
PHP:
$query = "SELECT IdeeUser FROM Ideeën";
$result = mysql_query($query) or die("Query failed: " . mysql_error());

  while ($array = mysql_fetch_array($result))
  {
  $query2 = "DELETE FROM Ideeën WHERE IdeeUser = '" . $array[0] . "'";
  $result2 = mysql_query($query2) or die("Query failed: " . mysql_error());
  }
Succes :thumb:
 
Nu is heel m'n tabel leeg! :(

Je was vergeten het while loopje weg te halen (en ik ook :p )

Nu doet hij het iig, alleen ben ik nu meteen alweer tegen het volgende probleem aangelopen :rolleyes:.

Maar daarover morgen waarschijnlijk meer!

Alvast bedankt!
 
Geplaatst door the_dannyboy
Nu is heel m'n tabel leeg! :(

Je was vergeten het while loopje weg te halen (en ik ook :p )
Vergeten ? Nee hoor, ik heb je code verbeterd ... ik ging ervanuit dat je wel wist wat de code zou doen ... kennelijk niet dus :D
Nu doet hij het iig, alleen ben ik nu meteen alweer tegen het volgende probleem aangelopen :rolleyes:.

Maar daarover morgen waarschijnlijk meer!

Alvast bedankt!
Kan niet wachten :p
 
Ok, next question:

Ik haal data uit m'n database:

PHP:
$query = "SELECT * FROM Ideeën";
$result = mysql_query($query) or die("Kon query niet uitvoeren: " . mysql_error());
while ($myrow = mysql_fetch_row($result))
{
	$myrow[0]=nl2br($myrow[0]);
	printf("<br>%s", $myrow[0]);
	echo("<A HREF='PIdeeenDel.php' STYLE='text-decoration:none'>Delete</A><br>");
	}

Nu komt er dus onder ieder veld wat ik uit m'n database haal 'Delete' te staan.
Deze link gaat dan naar het bestand waarover ik hierboven een vraag had.

Nu is mijn vraag dus: hoe zorg ik ervoor dat als ik op delete druk, dat hij dan het bijbehorende veld (1e,2e,3e enz.) weghaald??
 
Heb je in die tabel 'Ideeën' ook een uniek ID nummer ? Zo nee, maak die ? Nu ? :p
Zo ja, hoe heet die kolom ?
 
Een uniek ID nummer? Je bedoelt met auto increment?

Die heb ik nog geen, maar kan ik wel ff eentje maken. Ik noem 'm wel gewoon 'id'.
 
Jup, met auto_increment. Hierdoor valt elke rij uniek te benaderen ;).
Dan kun je zo'n script gebruiken voor pagina 1 (met de 'Delete' link):
PHP:
$query = "SELECT * FROM Ideeën";
$result = mysql_query($query) or die("Kon query niet uitvoeren: " . mysql_error());
  if(mysql_num_rows($result) == 0)
  {
  echo "Geen ideeën in de database, we zijn dom geworden";
  }
  else
  {
    while($rij = mysql_fetch_object($result))
    {
    printf("<br>%s",nl2br($rij->IdeeUser));
    echo "<A HREF=\"PIdeeenDel.php?id=" . $rij->id . "\" STYLE=\"text-decoration: none\">Delete</A><br>";
    }
  }
En voor PIdeeenDel.php kun je dan dit script gebruiken:
PHP:
  if(isset($_GET["id"]) == FALSE)
  {
  die("Geen ID opgegeven !");
  }

$id = ((int) $_GET["id"]);
$query = "DELETE FROM Ideeën WHERE id = '" . $id . "'";
$result = @mysql_query($query);
  if($result == FALSE)
  {
  echo ("Kon query niet uitvoeren: " . mysql_error());
  }
  elseif(mysql_affected_rows() == 0)
  {
  echo "Je hebt geen geldige ID opgegeven !";
  }
  else
  {
  echo "Idee verwijderd !";
  }
Succes :thumb:

// Edit: foutje verbeterd :)
 
Laatst bewerkt:
Tip: Gebruik niet gewoon id maar iets in de trant van ideeid of iid. Als je namelijk in elke tabel een kolom met de naam id aanmaakt en je gaat met queries werken waar er uit 2 verschillende tabellen informatie word gehaald, gaan ze moeilijk doen. Omdat er in beide tabellen een kolom met de naam id is gevonden :)
 
@JPeetje: TNX! Die code werkt wederom!
@masterprut: goede tip, TNX!

Op naar het volgende probleem! :p
 
Jaja...daar ben ik weer :rolleyes:

Wat klopt er niet aan deze code?

PHP:
<?
if(isset($_GET["id"]) == FALSE)
  {
  die("Geen ID opgegeven !");
  }

$id = ((int) $_GET["id"]);
$query = "SELECT Nieuwsbericht FROM Nieuws WHERE id = '" . $id . "'";
$result = @mysql_query($query);
  if($result == FALSE)
  {
  echo ("Kon query niet uitvoeren: " . mysql_error());
  }
  elseif(mysql_affected_rows() == 0)
  {
  echo "Je hebt geen geldige ID opgegeven !";
  }
  else
  {
    while ($row = mysql_fetch_object($result)) 
    { 
	$tekst = $row->Text;

	echo $tekst;
    }
  }  
?>

Hij laat niets zien, terwijl de database toch vol staat...:confused:
 
Als je naar de functiedocumentatie van mysql_affected_rows() zou gaan, zou je dit kunnen lezen:
mysql_affected_rows() geeft het aantal rijen dat betrokken was bij de laatste INSERT, UPDATE of DELETE query die geassocieerd was met link_identifier.
Kijk eens naar wat voor soort query jij gebruikt ;)
 
Misschien kun je die vervangen door mysql_num_rows(); :rolleyes:. Je wilt tenslotte het aantal rijen weten dat uit de database komt nadat je de query hebt gedraait :)

En misschien kun je

PHP:
    while ($row = mysql_fetch_object($result)) 
    { 
    $tekst = $row->Text;

    echo $tekst;
    }

vervangen door

PHP:
    while ($row = mysql_fetch_object($result)) 
    { 
    echo $row->Text;
    }

Doet hetzelfde, maar toch 2 regels minder :cool:

:thumb:
 
@JPeetje: een beetje duidelijker mag wel...:(

@masterprut: Kijk, zo snap ik het teminste :p !!

TNX!! Weer een probleem uit de weg geruimd dankzij jullie!
 
np :)

En misschien is het overzichtelijker om een nieuw topic te starten, het gaat uiteindelijk elke keer over iets anders dan dat de titel vermeldt :)

Maar tis mooi dat we je weer geholpen hebben :p

:thumb:
 
@masterprut> Je vergeet dat in de query alleen kolom 'Nieuwsbericht' opgehaald wordt, dus $row->Text is onmogelijk ;)
Maar Danny is d'r zelf al achter gekomen :p
 
Ach, een nieuw topic iedere keer vind ik ook zo'n onzin...vooral met al mijn (kleine) probleempjes :rolleyes:

Zolang jullie maar weten dat ik hier post is het goed ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan