problem mit code

T

timMekk

ich hab ein script, und möchte mit dem aus einer datenbank einen satz löschen, wo es nach der ID gehen soll....

hier mal der code
PHP:
<html>

<p align="center">&nbsp;</p>
<table border="1" cellpadding="3" cellspacing="3" style="border-collapse: collapse" bordercolor="#C0C0C0" width="800">
  <tr>
    <td align="center" width="20"><b>ID</b></td>
    <td align="center" width="100"><b>Wann</b></td>
    <td align="center" width="40"><b>Vorname</b></td>
    <td align="center" width="40"><b>Nachname</b></td>
    <td align="center" width="100"><b>von</b></td>
    <td align="center" width="100"><b>bis</b></td>
    <td align="center" width="300"><b>Begründung</b></td>
    <td align="center" width="100"><b>löschen / bearbeiten</b></td>
  </tr>
  <?
  include ("config.inc.php");



$connect = @mysql_connect($host, $user, $password) OR die(mysql_error());
  



mysql_select_db($db, $connect) OR die(mysql_error());

$result = mysql_query("SELECT * FROM $db",$connect) or die (mysql_error()); 


  while($row = mysql_fetch_object($result))
    {

print '<tr>';
    print '<td align="center" width="16">'.$row->ID.'</td>';
    print '<td align="center" width="260">'.date("d.m.Y - H:i",$row->zeit).'</td>';
    print '<td align="center" width="4">'.$row->vorname.'</td>';
    print '<td align="center" width="6">'.$row->name.'</td>';
    print '<td align="center" width="6">'.$row->datumvon.'</td>';
    print '<td align="center" width="79">'.$row->datumbis.'</td>';
    print '<td align="center" width="6">'.$row->statement.'</td>';
    $ID = $row->ID;
    print '<td align="center" width="261">
    
  <a href=auslesen?action=loeschen&&ID='$ID'> <img src="gfx/b_drop.png" width="16" height="16"></a> || 
  <a href=auslesen?action=bearbeiten><img src="gfx/b_edit.png" width="16" height="16"></a></td>';
  print '</tr>'; 
  
  }
  
  if (action == loeschen && ID == $row->ID)
  {
 	mysql_query("DELETE FROM $db WHERE ID == '$row->ID'",$connect) or die (mysql_error()); 
  }
  
  
  	
  
  mysql_close($connect);
  ?>
</table>

</body>

</html>

das problem liegt in zeile 44. wenn ich die '' wegnehme, dann funktioniert es zwar, aber es geht nicht, dass er die ID nimmt...
kann mir da mal einer helfen?!

danke
 
Bei MySQL ist der Vergleichsoperator anders als bei PHP nur ein einfaches Gleichheitszeichen. Der Zuweisungsoperator lautet dort :=.
 
danke dafür schon einmal, aber das problem liegt ja immernoch da in der zeile
Code:
<a href=auslesen?action=loeschen&&ID='$ID'>
er zeigt mir dann nicht die ID an, sondern wirklich nur $ID.

hab zuvor die ID so auslesen lassen:
Code:
while($row = mysql_fetch_object($result))
    {

print '<tr>';
    print '<td align="center" width="16">'.$row->ID.'</td>';
    print '<td align="center" width="260">'.date("d.m.Y - H:i",$row->zeit).'</td>';
    print '<td align="center" width="4">'.$row->vorname.'</td>';
    print '<td align="center" width="6">'.$row->name.'</td>';
    print '<td align="center" width="6">'.$row->datumvon.'</td>';
    print '<td align="center" width="79">'.$row->datumbis.'</td>';
    print '<td align="center" width="6">'.$row->statement.'</td>';
    $ID = $row->ID;
 
So, damit hier nicht lang rumgeraten werden muss hab ich den Code mal in andere Tags gesetzt um eine Zeilennummerierung zu bekommen.

Zusaetzlich moechte ich Dich noch darum bitten Dich an Gross- und Kleinschreibung zu halten.
 
hab das problem in der zeiel nun gelöst! aber nun liegt das problem beim löschen! ich kann den link ausführen, aber die zeile wird nicht gelöscht! muss ja irgendwo noch der wurm drin sein!

der code sieht nun aus wie folgt:
PHP:
<html>

<p align="center">&nbsp;</p>
<table border="1" cellpadding="3" cellspacing="3" style="border-collapse: collapse" bordercolor="#C0C0C0" width="800">
  <tr>
    <td align="center" width="20"><b>ID</b></td>
    <td align="center" width="100"><b>Wann</b></td>
    <td align="center" width="40"><b>Vorname</b></td>
    <td align="center" width="40"><b>Nachname</b></td>
    <td align="center" width="100"><b>von</b></td>
    <td align="center" width="100"><b>bis</b></td>
    <td align="center" width="300"><b>Begründung</b></td>
    <td align="center" width="100"><b>löschen / bearbeiten</b></td>
  </tr>
  <?
  include ("config.inc.php");



$connect = @mysql_connect($host, $user, $password) OR die(mysql_error());
  



mysql_select_db($db, $connect) OR die(mysql_error());

$result = mysql_query("SELECT * FROM $db",$connect) or die (mysql_error()); 


  while($row = mysql_fetch_object($result))
    {

print '<tr>';
    print '<td align="center" width="16">'.$row->ID.'</td>';
    print '<td align="center" width="260">'.date("d.m.Y - H:i",$row->zeit).'</td>';
    print '<td align="center" width="4">'.$row->vorname.'</td>';
    print '<td align="center" width="6">'.$row->name.'</td>';
    print '<td align="center" width="6">'.$row->datumvon.'</td>';
    print '<td align="center" width="79">'.$row->datumbis.'</td>';
    print '<td align="center" width="6">'.$row->statement.'</td>';
    $ID = $row->ID;
    print '<td align="center" width="261">
  <a href=auslesen.php?action=loeschen&&ID='.$ID.'> <img src="gfx/b_drop.png" width="16" height="16"></a> || 
  <a href=auslesen.php?action=bearbeiten&&ID='.$ID.'><img src="gfx/b_edit.png" width="16" height="16"></a></td>';
  print '</tr>'; 
  
  }
  
  if (action == loeschen)
  {
 	mysql_query("DELETE FROM $db WHERE ID=$ID",$connect) or die (mysql_error()); 
  }
  
  
  	
  
  mysql_close($connect);
  ?>
</table>

</body>

</html>
 
Notice: Use of undefined constant action - assumed 'action' in C:\Programme\xampp\htdocs\auslesen.php on line 50

Notice: Use of undefined constant loeschen - assumed 'loeschen' in C:\Programme\xampp\htdocs\auslesen.php on line 50

das sind die beiden fehlermeldungen
 
*offtopic*

@timMekk: Bitte beachte, wie schon von Dennis darauf hingewiesen, beim Verfassen deiner Beiträge Punkt 15 der Netiquette bzgl. Groß- und Kleinschreibung. Vielen Dank.
 
Das sind nur Hinweise, keine Fehlermeldungen. Und im Grunde wollen sie Dir sagen, dass Du Strings (also Zeichenketten) auch als solche auszeichnen sollst, denn sonst geht PHP erstmal davon aus, dass es sich um Konstanten handelt. PHP ist zwar so kulant zu erkennen, dass es keine solche Konstante gibt und dann automatisch mit einem String zu arbeiten, aber trotzdem solltest Du Dir angewoehnen Strings gleich entsprechend (also mit '' oder "") zu kennzeichnen.
Zusaetzlich ist action wohl auch kein String sondern ein Uebergabewert und duerfte hier wohl durch $_GET['action'] ersetzt werden muessen.

Und nochmal moechte ich Dich bitten in Zukunft auf Gross- und Kleinschreibung zu achten.
 

Neue Beiträge

Zurück