[PHP & MySQL] PHP Error: You have an error in your SQL syntax

bambi.bummler
Hallo ihr Lieben fröhlich
Ich habe für meine VPH gebastelt, dass man sein Fohlen wachsen lassen kann, hierbei wird das Bild geändert und eigentlich soll das Alter verändert werden auf 1, bzw 2 Jahre je nachdem wie die User es wollen.

Es wird allerdings folgende Meldung bei mysql-error() ausgegeben:

Zitat:
Fehler: 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 'alter = 1 Jahr WHERE id = '136'' at line 1Dein Pferd ist erfolgreich gewachsen.


Hier könnt ihr pferd_wachsen.php sehen

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:

<form id="form1" name="form1" method="post" action="<?php $id = $_GET["id"]; echo "wachsen2.php?id=$id"; ?>">
  Neues Bild:
  <select name="bild" class="zeileblue" id="bild">
        <?php
        $sql = "SELECT * FROM bilder WHERE status = 'frei' ORDER BY id ASC";
        $ergebnis = mysql_db_query($db, $sql, $verbindung);
        while ($row = mysql_fetch_object($ergebnis))
        {
        $id = $row->id;
          echo "<option value='$id'>$id</option>";
         } 
        ?>
        </select>
  Neues Alter:
  <label></label>
  <label>
  <select name="alter" class="zeileblue" id="alter">
    <option value="1 Jahr" selected="selected">1 Jahr</option>
    <option value="2 Jahre">2 Jahre</option>
            </select>
  <input name="button" type="submit" class="zeileblue" id="button" value="Senden" />
  </label>
</form>


und hier nun die wachsen2.php

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:

<?php
    $bild = $_POST["bild"];
    $id = $_GET["id"];
                                // altes Bild wieder frei setzen
                                        $sqla = "SELECT * FROM pferde WHERE id = '$id'";
                                        $ergebnisa = mysql_db_query($db, $sqla, $verbindung);
                                        while ($rra = mysql_fetch_object($ergebnisa))
                                        {
                                            $alt = $rra->bild;
                                                
                                                $sqlb = "UPDATE bilder SET status = 'frei' WHERE url = '$alt'";
                                                $ergebnisb = mysql_db_query($db, $sqlb, $verbindung);
                                        }
                                
                                // neues Bild vergeben setzen
                                        $sqlc = "UPDATE bilder SET status = 'vergeben' WHERE id = '$bild'";
                                        $ergebnisc = mysql_db_query($db, $sqlc, $verbindung);
                                
                                // neues Bild URL einsetzen
                                        $sqld = "SELECT * FROM bilder WHERE id = '$bild'";
                                        $ergebnisd = mysql_db_query($db, $sqld, $verbindung);
                                        while ($rrd = mysql_fetch_object($ergebnisd))
                                        {
                                            $url = $rrd->url;
                                            $alter = $_POST["alter"];
                                            
                                            $sqle = "UPDATE pferde SET bild = '$url', alter = $alter WHERE id = '$id'";
                                            $ergebnise = mysql_db_query($db, $sqle, $verbindung);
                                            echo "Fehler: ".mysql_error();
                                        }
                                        
                                        
                                
                                echo "Dein Pferd ist erfolgreich gewachsen.";
?>


Zur besseren Übersicht habe ich header und so weg gelassen.
.Senseless
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
                                // neues Bild URL einsetzen
                                        $sqld = "SELECT * FROM bilder WHERE id = '$bild'";
                                        $ergebnisd = mysql_db_query($db, $sqld, $verbindung);
                                        while ($rrd = mysql_fetch_object($ergebnisd))
                                        {
                                            $url = $rrd->url;
                                            $alter = $_POST["alter"];
                                            
                                            $sqle = "UPDATE pferde SET bild = '$url', alter = '$alter' WHERE id = '$id'";
                                            $ergebnise = mysql_db_query($db, $sqle, $verbindung);
                                            echo "Fehler: ".mysql_error();
                                        }
bambi.bummler
Es hat sich nichts verändert. Die '' hatte ich auch schon. Immer noch wird ausgegeben:

Fehler: 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 'alter = '1 Jahr' WHERE id = '136'' at line 1Dein Pferd ist erfolgreich gewachsen.
.Senseless
Zitat:
Original von .Senseless
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
                                // neues Bild URL einsetzen
                                        $sqld = "SELECT * FROM bilder WHERE id = '$bild'";
                                        $ergebnisd = mysql_db_query($db, $sqld, $verbindung);
                                        while ($rrd = mysql_fetch_object($ergebnisd))
                                        {
                                            $url = $rrd->url;
                                            $alter = $_POST["alter"];
                                            
                                            $sqle = "UPDATE pferde SET bild = '$url', `alter` = $alter WHERE id = '$id'";
                                            $ergebnise = mysql_db_query($db, $sqle, $verbindung);
                                            echo "Fehler: ".mysql_error();
                                        }


Also so?
bambi.bummler
kann es sein, dass diese reservierten wörter ab und an gehen und dann wieder nicht? in anderen teilen der page verwende ich es ja auch ohne probleme o.O
Senseless hat jetzt auch nix gebracht, ich werd mal einfach alter in allen Teilen der Page umsetzen in ein anderes Wort.
bambi.bummler
danke Mordred, jetzt geht es. Gibt es irgendwo eine Liste dieser besetzten Worte? So dass man mal schauen kann.