Row verwijderen

Status
Niet open voor verdere reacties.

vragenfreak92

Gebruiker
Lid geworden
9 jul 2006
Berichten
210
ik heb een aantal records in een mysql table staan.
hoe ik deze kan ophalen weet ik ik, maar hoe krijg ik het voor elkaar, om deze records te tonen in een rij, en achter elk record een kruisje (image) en als je daar dan op klikt dat de desbetreffende rij word verwijderd?

Alvast bedankt voor jullie hulp.
 
Achter de link van die afbeelding een script maken die deze regel uitvoert
(Met in acht name dat je een $_GET-variabele gebruikt voor de link met daarin een unieke waarde binnen die rij)

PHP:
$query = "DELETE * FROM {tabel} WHERE uniekVeld = '". $_GET['variabele'] ."'";
Uiteraard met de bijbehorende beveiligingen.
 
Achter de link van die afbeelding een script maken die deze regel uitvoert
(Met in acht name dat je een $_GET-variabele gebruikt voor de link met daarin een unieke waarde binnen die rij)

PHP:
$query = "DELETE * FROM {tabel} WHERE uniekVeld = '". $_GET['variabele'] ."'";
Uiteraard met de bijbehorende beveiligingen.

Dankje voor je snelle antwoord...

Wil je misschien een scriptje laten zien, waarin ik de waarden ophaal in een row, deze laat zien, en dan het gene wat jij zegt?

Alvast bedankt!!:thumb:
 
PHP:
<?php
		
	// database includen\
	include ("connect.php");
	
	// kijken welke dag het vandaag is.
	$datum = date("d-m-y");
	$tomorrow = mktime(0, 0, 0, date("m"), date("d")+1, date("y"));
	$morgen = date("d-m-y", $tomorrow);
 
	// datum van vandaag laten zien
	echo "<font size='25'>Vandaag</font>";
	
	
 	$result = mysql_query("SELECT * FROM uitval WHERE datum='".$datum."' ORDER BY datum ASC LIMIT 5");
	echo "<table border='2'>
		<tr>
		<th>Datum</th>
		<th>Klas</th>
		<th>Les(sen)</th>	
		</tr>";
		while($row = mysql_fetch_array($result))
		{
  		echo "<tr>";
  		echo "<td width='150'><center>" . $row['datum'] . "</center></td>";
  		echo "<td width='100'><center>" . $row['klas'] . "</center></td>";
		echo "<td width='100'><center>" . $row['lesuur'] . "</center></td>";
  		echo "</tr>";
  		}
		echo "</table>";
		// weergeven van alle gevonden records, worden weergegeven in een tabel.
	
?>

Dit is de code die ik gemaakt heb. nu moet er dus achter elke gevonden rij een mogelijk zijn om de rij te verwijdern waar het kruisje achter staat...

VB:

Datum Klas Lesuur delete?

10-11 H4 5 X <-- als je dus op dit kruisje klikt, word DEZE rij verwijderd....
15-11 H5 4 + 5 X
25-11 H5 2 X
 
Laatst bewerkt:
Waardes ophalen is kon je toch al?
Kwestie van achter elke rij een afbeelding met een link
PHP:
echo'
<a href="delete.php?id='. $row['id'] .'"><img src="afbeelding.jpg" alt="Verwijderen" /></a>
';
(Ik gebruik de ID omdat ik er van uit ga dat je die hebt en omdat hij uniek zal zijn)

Om vervolgens in delete.php zoiets te maken
PHP:
if(isset($_GET['id'])) {
  $query = "DELETE * FROM {tabel} WHERE id='". $_GET['id'] ."'";
  $result = mysql_query($query);
  if(!$result) {
    echo 'Er is iets verkeerd gegaan.';
  } else {
    echo 'Rij succesvol verwijderd!';
  }
}
Dit is een definitieve verwijdering, je zou ook een veld aan de rij kunnen toevoegen genaamd visible van het type BOOLEAN (Of TINYINT(1))

De DEFAULT-waarde hiervan is 1, bij het verwijderen zul je dan dat veld op 0 gaan zetten. Zo behoudt je de rij maar kun je er voor zorgen dat hij niet weergegeven wordt :)
 
Waardes ophalen is kon je toch al?
Kwestie van achter elke rij een afbeelding met een link
PHP:
echo'
<a href="delete.php?id='. $row['id'] .'"><img src="afbeelding.jpg" alt="Verwijderen" /></a>
';
(Ik gebruik de ID omdat ik er van uit ga dat je die hebt en omdat hij uniek zal zijn)

Om vervolgens in delete.php zoiets te maken
PHP:
if(isset($_GET['id'])) {
  $query = "DELETE * FROM {tabel} WHERE id='". $_GET['id'] ."'";
  $result = mysql_query($query);
  if(!$result) {
    echo 'Er is iets verkeerd gegaan.';
  } else {
    echo 'Rij succesvol verwijderd!';
  }
}
Dit is een definitieve verwijdering, je zou ook een veld aan de rij kunnen toevoegen genaamd visible van het type BOOLEAN (Of TINYINT(1))

De DEFAULT-waarde hiervan is 1, bij het verwijderen zul je dan dat veld op 0 gaan zetten. Zo behoudt je de rij maar kun je er voor zorgen dat hij niet weergegeven wordt :)


ik snap je!:thumb:

Maar die $row['id'] he, als ik achter elke rij deze link zet, hoe weet ik hij dan welke rij ik heb geklikt?
 
Hij geeft die ID door aan de URL zodat je hem in delete.php kunt opvragen.
 
Ik heb ergens hier een stukje code staan die dit voor mij doet :

PHP:
	if($_REQUEST['action']=="del")
	{
		mysql_query("DELETE FROM tabel WHERE id={$_REQUEST['id']};");
	}

	$result=mysql_query("SELECT id, enzovoorts FROM tabel ORDER BY ASC;");

Misschien hept dit verder.
 
Dank jullie allemaal!! het is mij gelukt!! ben nu erg blij :P

:thumb::thumb::thumb::thumb::thumb::thumb::thumb::thumb:
 
Als jij de ID meegeeft wel ja.

Je WHILE zal er zo uit zien (Heb hem nu textueel)
PHP:
while($row = mysql_fetch_array($result)) {
  echo "<tr>"; 
  echo "<td width='150'><center>" . $row['datum'] . "</center></td>"; 
  echo "<td width='100'><center>" . $row['klas'] . "</center></td>"; 
  echo "<td width='100'><center>" . $row['lesuur'] . "</center></td>";
  echo '<td><center><a href="delete.php?id='. $row['id'] .'">VERWIJDER</a></center></td>';
  echo "</tr>";
}
Wel even controleren of je een veld id hebt (Als het goed is is dat de PRIMARY KEY)
 
Als jij de ID meegeeft wel ja.

Je WHILE zal er zo uit zien (Heb hem nu textueel)
PHP:
while($row = mysql_fetch_array($result)) {
  echo "<tr>"; 
  echo "<td width='150'><center>" . $row['datum'] . "</center></td>"; 
  echo "<td width='100'><center>" . $row['klas'] . "</center></td>"; 
  echo "<td width='100'><center>" . $row['lesuur'] . "</center></td>";
  echo '<td><center><a href="delete.php?id='. $row['id'] .'">VERWIJDER</a></center></td>';
  echo "</tr>";
}
Wel even controleren of je een veld id hebt (Als het goed is is dat de PRIMARY KEY)

Erg bedank!:thumb: het werkt allemaal...\

nu zeker alleen nog een beveiliging toevoegen, zodat niet iedereen het kan verwijdern;)

PHP:
 if(!isset($_GET['id']))
    // geeft geen toestemming
else

// ga door en verwijder :P
 
Meer een beveiliging in de zin van: Ik voer delete.php?id=6 in mijn url in en jij bent je rij met ID 6 kwijt ;)

Even zorgen dat je ingelogd moet zijn voor je kunt verwijderen ;)
 
Meer een beveiliging in de zin van: Ik voer delete.php?id=6 in mijn url in en jij bent je rij met ID 6 kwijt ;)

Even zorgen dat je ingelogd moet zijn voor je kunt verwijderen ;)

had ik al voor gezorgd ;)

ik werk met sessies,

Enne! nog bedankt he !
 
Jammergenoeg werkt wat niet?

Uitleg wat je gedaan hebt en met welke code je het hebt geprobeerd is wenselijk ;)
 
PHP:
<?php
		
	// database includen\
	include ("connect.php");
	
	// kijken welke dag het vandaag is.
	$datum = date("d-m-y");
	$tomorrow = mktime(0, 0, 0, date("m"), date("d")+1, date("y"));
	$morgen = date("d-m-y", $tomorrow);
 
	// datum van vandaag laten zien
	echo "<font size='25'>Vandaag</font>";
	
	
 	$result = mysql_query("SELECT * FROM uitval WHERE datum='".$datum."' ORDER BY datum ASC LIMIT 5");
	echo "<table border='2'>
		<tr>
		<th>Datum</th>
		<th>Klas</th>
		<th>Les(sen)</th>	
		</tr>";
		while($row = mysql_fetch_array($result))
		{
  		echo "<tr>";
  		echo "<td width='150'><center>" . $row['datum'] . "</center></td>";
  		echo "<td width='100'><center>" . $row['klas'] . "</center></td>";
		echo "<td width='100'><center>" . $row['lesuur'] . "</center></td>";
		echo '<td width="100"><center><a href="delete.php?id='. $row['id'] .'"><img src="/images/del.gif" alt="Verwijderen" /></a></center></td>';
  		echo "</tr>";
  		}
		echo "</table>";
		// weergeven van alle gevonden records, worden weergegeven in een tabel.
	
?>

Dit hierboven werk prima, het laat het zien.. maar zodra ik klik op delete, voer hij deze code uit :
PHP:
<?php
// database includen
include ("connect.php");

if(isset($_GET['id'])) { 
  $query = "DELETE * FROM uitval WHERE id='". $_GET['id'] ."'"; 
  $result = mysql_query($query); 
  if(!$result) { 
    echo 'Er is iets verkeerd gegaan.'; 
  } else { 
    echo 'Rij succesvol verwijderd!'; 
  } 
}  

?>

en dan krijg ik "Er is iets verkeerd gegaan"....

dus zijn er geen records gevonden?

hoewel ik heb nagekeken, of deze bestaan ( en dat doen ze :p)
 
Database velden kloppen ook?

Maak van dit:
PHP:
 if(!$result) {  
    echo 'Er is iets verkeerd gegaan.';  
  } else {  
    echo 'Rij succesvol verwijderd!';  
  }
eens dit
PHP:
 if(!$result) {  
    echo 'Er is iets verkeerd gegaan.'. mysql_error():
  } else {  
    echo 'Rij succesvol verwijderd!';  
  }
Hierdoor krijg je waarschijnlijk een foutmelding, plaats die hier even :)
 
Database velden kloppen ook?

Maak van dit:
PHP:
 if(!$result) {  
    echo 'Er is iets verkeerd gegaan.';  
  } else {  
    echo 'Rij succesvol verwijderd!';  
  }
eens dit
PHP:
 if(!$result) {  
    echo 'Er is iets verkeerd gegaan.'. mysql_error():
  } else {  
    echo 'Rij succesvol verwijderd!';  
  }
Hierdoor krijg je waarschijnlijk een foutmelding, plaats die hier even :)

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '* FROM uitval WHERE id='13'' at line 1
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan