Einzelnen Beitrag anzeigen
  #1  
Alt 17.02.2006, 15:29:39
Benutzerbild von 8805-evergreen.
8805-evergreen. 8805-evergreen. ist offline
Anfänger
 
Registriert seit: Feb 2006
Beiträge: 125
SQL-Klausel mit mehreren OR's und/oder AND's klappt nicht

Hallo...

Hab hier ein relativ kleines Problem, aber ich kann machen was ich will, er will den Datensatz nicht updaten... Am besten Poste ich mal den Code weiter unten.
Kurzgesagt geht es um ein Simples Formular nur mit Checkboxen. Die Ergebnisse der aktivierten Checkboxen speichert er in einem Array Namens show (gibt ihm die ID mit). Nun möchte ich die vorhandenen Datensätze Updaten, aber dies Klappt nicht.... Es sollte schliesslich ein dynamisches, einfach zu administrierendes Formular, bei dem man die gewünschten Felder auswählen kann....

Nun zum Code...

PHP-Code:
if(isset($senden))
{
    include('config.php');
    
    echo $whereShow = implode($show,' OR id=');
    echo $whereShow2 = implode($show,' AND id!=').'<br>'; 
    
    mysql_query("UPDATE kontakt SET show=1 WHERE id=$whereShow");
    mysql_query("UPDATE kontakt SET show=1 WHERE id=$whereShow2");
    
    echo "<br><br>".mysql_error();        
    
}else
{
?>
    <form action="index.php?rubrik=kontakt" method="post">
    <table width="250px" cellpadding="3" cellspacing="0">
        <tr id="kontakt_TitelCell">
            <td width="150px">Feldname</td>
            <td width="50px">Show</td>
            <td width="50px">Pflichtfeld</td>
        </tr>
    <?
    include('config.php');

    $res = mysql_query('SELECT * FROM kontakt');
    
    while($row = mysql_fetch_array($res))
 {

  $showChecked =''; 
    $pflichtChecked = '';

  if($row['show']) $showChecked = 'CHECKED';
  if($row['pflicht']) $pflichtChecked = 'CHECKED';
    
  echo '
  <tr>
   <td id="kontakt_FeldCell" width="150px">'.$row['name'].'</td>
   <td id="kontakt_FeldCell" width="50px"><input style="border:0;" type="checkbox" 
value="'.$row['id'].'" name="show[]" '.$showChecked.'></td>
   <td id="kontakt_FeldCell" width="50px"><input style="border:0;" type="checkbox" 
value="'.$row['id'].'" name ="pflicht[]" '.$pflichtChecked.'></td>
  </tr>';
 }

    ?>
        <tr>
            <td id="kontakt_FeldCell" colspan="3"><input type="submit" value="Senden" id="submit" name="senden"></td>
        </tr>
    </table>
    </form>
<?
}
bei echo $whereShow = implode($show,' OR id='); gibt er folgendes aus:
1 OR id=2 OR id=3

was zur abfrage:

mysql_query("UPDATE kontakt SET show=1 WHERE id=1 OR id=2 OR id=3");

führt.... ist doch korrekt... OR? =) anscheinend nicht...

Geändert von 8805-evergreen. (17.02.2006 um 15:50:46 Uhr)
Mit Zitat antworten