Christian: Fehler mysql - wo ist der Fehler

Eigentlich handelt es sich nur um ein Formular das ausgefüllt wird und dann in eine vorhandene Datenbank eingetragen wird.
Die eingegebenen Daten sollen die Tabelle vervollständigen.

Bei dem ganzen handelt es sich um einen Onlineshop.
Wenn ich das Fertig hab is auch der SHop fertig. Schein etwas blind zu sein um einen warscheinlich simplen Fehler zu sein.

POST FORMUKLAR DATEI ->
form name="form1" method="post" action="bestell_ok.php?<?=session_name()."=".session_id()?>">
    <input name="Session_id " type="hidden" id="Session_id " value="<? session_id(); ?>">
    <table width="75%" border="1">
      <tr>
        <td><div align="right">Anrede</div></td>
        <td><p>
            <label>
            <input type="radio" name="Anrede" value="Herr">
            Herr</label>
            <br>
            <label>
            <input type="radio" name="Anrede" value="Frau">
            Frau</label>
            <br>
          </p></td>
      </tr>
      <tr>
        <td width="50%"> <div align="right">Nachname: </div></td>
        <td width="50%"> <input name="nname" type="text" id="nname"> </td>
      </tr>
      <tr>
        <td width="50%"><div align="right">Vorname:</div></td>
        <td width="50%"><input name="vname" type="text" id="vname"></td>
      </tr>
      <tr>
        <td width="50%"><div align="right">Spraße:</div></td>
        <td width="50%"><input name="strasse" type="text" id="strasse"></td>
      </tr>
      <tr>
        <td width="50%"><div align="right">PLZ:</div></td>
        <td width="50%"><input name="plz" type="text" id="plz"></td>
      </tr>
      <tr>
        <td width="50%"><div align="right">Ort:</div></td>
        <td width="50%"><input name="ort" type="text" id="ort"></td>
      </tr>
      <tr>
        <td width="50%"><div align="right">e-mail:</div></td>
        <td width="50%"><input name="email" type="text" id="email"></td>
      </tr>
      <tr>
        <td width="50%"><div align="right">Telefon:</div></td>
        <td width="50%"><input name="telefon" type="text" id="telefon"></td>
      </tr>
      <tr>
        <td colspan="2"><input name="check" type="checkbox" id="check" value="check" checked>
          Hiermit bestätige ich die Bestellung und erkläre mich mit
          den AGB's einverstanden.</td>
      </tr>
    </table></form>

DATEI ZUM EiNTRAGEN MYSQL ->
<?
session_start();
?>
  <?
include ('datei.php');
@mysql_connect($dbhost, $dbuser, $dbpass);
@$x = mysql_select_db($dbdata);
mysql_query("UPDATE shop_card set nname='".$_POST['nname']."', vname='".$_POST['vname']."', strasse='".$_POST['strasse']."', plz='".$_POST['plz']."', ort='".$_POST['ort']."', e-mail='".$_POST['e-mail']."', telefon='".$_POST['telefon']."', Anrede='".$_POST['Anrede']."', where Session_id ='" . session_id() . "'");
mysql_close();

?>

  1. Hi,

    Ich hasse es ja eigentlich wenn Leute mit Sachen anfangen, die mit dem Problem nichts zu tun haben, aber:
    Willst du wirklich einen Shop programmierern, bei dem die Daten ganz und gar ungeprüft direkt aus dem $_POST in die DB gehen? Mutig.....

    mysql_query("UPDATE shop_card set nname='".$_POST['nname']."', vname='".$_POST['vname']."', strasse='".$_POST['strasse']."', plz='".$_POST['plz']."', ort='".$_POST['ort']."', e-mail='".$_POST['e-mail']."', telefon='".$_POST['telefon']."', Anrede='".$_POST['Anrede']."', where Session_id ='" . session_id() . "'");

    Ansonsten:

    1. Was ist denn dein Fehler?
    2. Bau doch dein Query mal um als:
      $qry = "UPDATE ...";
      mysql_query($qry);
      -> Dann mach mal ein echo $qry), dann siehst du, ob da evtl. was nicht so befüllt ist wie du dachtest...

    MfG
    Rouven

    --
    -------------------
    ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
    1. Die daten werden noch geprüft, das wollte ich nicht posten weil das nachher zuviel wird :)

      Das PRoblem ist in der mysql das Ich ja viele Felder hab mit der selben session ID und dort soll er nun noch die Daten des Nutzers hinterhängen die nach dem warenkorb OK abgefragt werden.

      Und mit echo $qry bekomm ich genau das ausgegeben was ich eingegeben hab.

      Ich frag mich nur wieso er nicht updated macht(Name,anschrift ect) in allen Feldern wo die Session ID halt ist.

  2. Hi,

    ich würde mir an Deiner Stelle noch mal überlegen, ob ich wirklich _selbst_ den Shop programmieren will oder obs jemd. macht, der das kann *g*

    Nun gut, Deine Frage:

    mysql_query("UPDATE shop_card set nname='".$_POST['nname']."', vname='".$_POST['vname']."', strasse='".$_POST['strasse']."', plz='".$_POST['plz']."', ort='".$_POST['ort']."', e-mail='".$_POST['e-mail']."', telefon='".$_POST['telefon']."', Anrede='".$_POST['Anrede']."', where Session_id ='" . session_id() . "'");

    2 Fehler:

    • vor WHERE steht ein , (Komma) ohne Sinn.
    • das Feld e-mail würde ich email nennen, oder wie ich eben in Hochkomma setzen. Sonst nimmt er das als e-mail (E minus MAIL) und interpretiert demzufolge falsch.

    Gruss
    Stefan

    1. Nix selbst ist der MANN :>

      selfmade ist einfach besser und mahct spaß

      Danke stefan, der fehler war das Komma sehr witzig wie ich finde ^^

      Soviel zu
      ich = blind *g*

      Danke und solong :)