Ik heb een probleempje ik ben al dagen bezig geweest om te zoeken naar verschillende scripts
om het volgende te kunnen:
een geselecteerde naam verwijderen uit database

hier een screenshot wat ik bedoel:
http://www.michaelk.speedxs.nl/help/1.JPG

Ik heb het wel voor mekaar gekregen door op de delete knop te duwen dat die wat verwijderd maar hij verwijderd de laatste letter van het alfabet


ik kan selecteren maar hij verwijderd niks als ik op delete duuw

alvast bedankt wie mij een beetje kan bij sturen

grtz

Dit is mijn script:

<?php
# Programma: kachelmerkverwijder.php
# verwijderd van database
?>
<html>
<title>Verwijder kachel merk van lijst</title></head>
<body>
<?php
// verbinding maken
  include("logmisc.inc");
  $connection = mysql_connect($host,$user,$password)
       or die ("kan geen verbinding maken met server");
  $db = mysql_select_db($database,$connection)
       or die ("kan geen database selecteren");

	 
  /* laat merken zien in alfabetishe volgorde*/
  $query="SELECT kachelmerkid FROM kachelmerk ORDER BY kachelmerkid";
  $result = mysql_query($query)
     or die ("kan geen query verkrijgen");

  # Uitleg wat het doet
  echo "Kachel merken die al in database bestand staan:";
#################################################

  $id = $kachelmerkid;
  echo "<form action='kachelmerkverwijder.php' method='DELETE'>
    <select name='$kachelmerkid'>";

  while ($row = mysql_fetch_array($result))
  {
     extract($row);
     echo "<option value='kachelmerkid'>$kachelmerkid";
  } 
    
  
   { 
      $this->id = $kachelmerkid; 
      $verwijderQuery = "DELETE FROM kachelmerkid WHERE kachelmerk='".$this->id."'"; 
      mysql_query($verwijderQuery); 

  echo "<input type='submit' value='Verwijder Kachel merk'>
    </form>\n";
      return true; 
   }	   


?>


</body>
</html>


[edit]Code tags toegevoegd[/edit]
Je doet niks aan fout afhandeling, dit is zeker tijdens het ontwikkelen belangrijk, dan kan je zie wat er waar fout gaat.

Om te beginnen moet je error_reporting(E_ALL); boven je script zetten en neem deze tutorial eens door:
http://www.phphulp.nl/php/tutorials/3/306/
Jy krijgt momenteel namelijk geen enkele MySQL foutmelding te zien.
Bedankt ik heb het toegevoegt en de fouter en uit gehaald hij doet het al verder hij verwijderd nu
weer de laatste in de alfabet


maar op dit stukje doet di ehet niet goed

$verwijderQuery = "DELETE FROM kachelmerk WHERE kachelmerkid='".$this->id."'";


als ik $this->id."'"; ' verander in $this->id."A";

dan krijg ik in de error te zien

have an error in SQL syntax ..... near "(laatstewoord in aflabed)A' at line 1

dus als de laatste letter bv Q is geeft die deze melding

...... "QA" at line 1
Letters moetten wel tussen quotes.
dat heb ik toch ..?

WHERE kachelmerk='".$this->id."'";

grtz
Zo misschien?

<html>
<title>Verwijder kachel merk van lijst</title></head>
<body>
<?php
  include("logmisc.inc");
  $connection = mysql_connect($host,$user,$password)
       or die ("kan geen verbinding maken met server");
  $db = mysql_select_db($database,$connection)
       or die ("kan geen database selecteren");

if(!empty($_POST['deleteid'])){
      $verwijderQuery = "DELETE FROM kachelmerkid WHERE kachelmerk='".$_POST['deleteid']."'"; 
      mysql_query($verwijderQuery); 
}

  $query="SELECT kachelmerkid FROM kachelmerk ORDER BY kachelmerkid";
  $result = mysql_query($query)
     or die ("kan geen query verkrijgen");
  
echo "Kachel merken die al in database bestand staan:";

echo "<form action='kachelmerkverwijder.php' method='POST'><select name='deleteid'>";
 while ($row = mysql_fetch_array($result))
  {
     echo "<option value='".$row['kachelmerkid']."'>".$row['kachelmerkid']."</option>";
  } 

  echo "</select><input type='submit' value='Verwijder Kachel merk'>
    </form>\n";   


?>


</body>
</html>
ja lol,

dit is heel logisch in je while lus zit er telkens een nieuwe $kachelmerkid en is die op het einde altijd de laatste in je alfabet

dus moet je $this->id niet setten met $kachelmerkid maar zou het handig zijn moest je kijken welke id je gekozen hebt in je form!!

dus: $this->id = $_POST['kachelmerkid'];
werkt het nu?

<?php
if($_SERVER['REQUEST_METHOD'] == "POST")
{
	if(!empty($_POST['delete']))
	{
		$i = 0;
		$ii = 0;
		
		foreach($_POST['delete'] as $id)
		{
			$query = "DELETE FROM kachelmerkid WHERE kachelmerk =".mysql_real_escape_string($id)."";
			$resultaat = mysql_query($query);
						
			if($resultaat && (mysql_affected_rows() == 1))
			{
				$i++;
			}else{
				$ii++;
			}
		}
		
		echo '<p id="error">De database is geupdate, er zijn '.$i.' records goed verwijderd en '.$ii.' mislukt!</p>';
	}
}

$query 		= "SELECT kachelmerkid FROM kachelmerk ORDER BY kachelmerkid";
$resultaat 	= mysql_query($query);
				
if ($resultaat && (mysql_num_rows($resultaat) >= 1))
{
?>

<form method="post" name="formulier" action="">

<table>
<tr>	
<td width="10"></td>
<td><b>Klachelmerkid:</b></td>
</tr>

<?php
while($rij = mysql_fetch_array($resultaat))
{
	echo '<tr>';
	echo '<td><input type="checkbox" name="delete[]" value="'.$rij['kachelmerkid'].'"></td>';
	echo '<td>'.$rij['kachelmerkid'].'</td>';
	echo '</tr>';
}
?>

<tr>
<td>&nbsp;</td>
<td colspan="4"><input type="submit" value="Verwijderen" name="verstuur"> <input type="reset" value="Wis Formulier"></td>
</tr>
</table>
</form>

<?php
	
}else{
	echo '<p>Sorry, er staan nog geen kachels in de database!</p>';
}
?>
Bedankt u allen het is gelukt met de script van arjan er zaten alleen 2 dingen in die ik moest veranderen
maar nu doet die het

$query = "DELETE FROM kachelmerk WHERE kachelmerkid ='$id'";

zo moest die regel zijn voor mij

thnx
Eehm.. het lijkt mij onverstandig om die mysql_real_escape_string() weg te halen... Gebruik dan op ze minst een if_numeric() ofzo...

Reageren