sql vergleich...

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • sql vergleich...

    Hallo,

    ich stehe vor einem problem, normalerweise arbeite ich mit flash und actionscript, nur diesmal war/ist php und sql nötig.

    ich habe folgendes script welches mir die von flash gelieferten daten in eine sql tabelle einträgt.

    die daten $num und $nam sind schon in der tabelle vorhanden.

    ich würde gerne, wenn $ num und $nam nicht zusammenpassen eine fehlermeldung in form eines echo haben.

    ich bitte um eure hilfe da ich schon am verzweifeln bin...

    PHP-Code:

    <body bgcolor="#FEC34E">
    <p>
    <?
    $num = $_POST['nummer'];
    $nam = $_POST['nachname'];
    $mail = $_POST['email'];
    $bday = $_POST['day'];

      
        $eintrag = "UPDATE als SET email='$mail' WHERE nummer='$num' AND nachname='$nam'";
        include("dbconnect.php");
        $eintragen = mysql_query($eintrag);
        $eintrag = "UPDATE als SET geburtsdatum='$bday' WHERE nummer='$num' AND nachname='$nam'";
        include("dbconnect.php");
        $eintragen = mysql_query($eintrag);
    ?>
    </p>

    geht das vllt. mit einer einfachen if schleife oder ist dafür mehr nötig ?

    mfg, bensen

  • #2
    Naja, zunächst sind mal grundlagen nötig...

    PHP-Code:
        $eintrag "UPDATE als SET email='$mail' WHERE nummer='$num' AND nachname='$nam'";
        include(
    "dbconnect.php");
        
    $eintragen mysql_query($eintrag);
        
    $eintrag "UPDATE als SET geburtsdatum='$bday' WHERE nummer='$num' AND nachname='$nam'";
        include(
    "dbconnect.php");
        
    $eintragen mysql_query($eintrag); 
    Das ist doppelt gemoppelt. UPDATE kann nämlich mehr als eine Spalte ändern. Schau mal ins Manual.

    Als nächstes hast du mehrere Möglichkeiten

    mysql_affected_rows() liefert dir die anzahl der geänderten datensätze. Die sollte ja bei 1 liegen. Also kannst du ganz einfach nachfragen

    if(geänderte datensätze = 0)

    Dies setzt allerdings voraus, dass email und/oder geburtsdatum sich geändert haben. sind beide daten gleich (also wie vorher), wirst du trotzdem "0" geänderte ds erhalten. (klar, sql musste ja nichts ändern)

    Alternativ kannst du auch vorher mit nem SELECT die daten überprüfen.

    Kommentar


    • #3
      ich habe es jetzt so gemacht, allerdings bekomme ich immer den fehler auch wenn ich richtige daten eingebe...


      PHP-Code:
      <body bgcolor="#FEC34E">
      <p>
      <?
      $num = $_POST['nummer'];
      $nam = $_POST['nachname'];
      $mail = $_POST['email'];
      $bday = $_POST['day'];

      include("dbconnect.php"); 
      $sql = mysql_fetch_array("SELECT * FROM 'alsterlounge' WHERE nummer = '$num' AND nachname = '$nam'");
      $eintra = mysql_query($sql);
      if (($nam != $sql['nachname']) && ($num != $sql['nummer']))
      {
      $fehler = "1";
      echo "&error=".$fehler."&";
      }else{
          $eintrag = "UPDATE alsterlounge SET email='$mail' WHERE nummer='$num' AND nachname='$nam'";
          include("dbconnect.php");
          $eintragen = mysql_query($eintrag);
          $eintrag = "UPDATE alsterlounge SET geburtsdatum='$bday' WHERE nummer='$num' AND nachname='$nam'";
          include("dbconnect.php");
          $eintragen = mysql_query($eintrag);
      }  
      ?>
      </p>

      woran kann das liegen ?

      Kommentar


      • #4
        ... allerdings bekomme ich immer den fehler ...
        ach, du meinst _DEN_ fehler? verstehe...

        was ist in mysql der unterschied zwischen hochkommata und backticks?
        was weißt du über mysql_error()?

        Kommentar


        • #5
          leider weiss ich darüber nichts und den unterschied kenne ich auch nicht...

          Kommentar


          • #6
            hint: kurz googlen, es ist kein staatsgeheimnis.

            Kommentar

            Lädt...
            X