UPDATE wie das WHERE?

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

  • UPDATE wie das WHERE?

    hi,

    ich habe derzeit ein kleines problem und ich ahne woran es liegt, weiß aber im moment nicht wie ich es behebe:

    PHP-Code:
     <?php 
      
    if($action=="senden"
      { 
        
        if(!
    $Tankstellenname$fehler[] = "<font class='td2_ueberschrift'>Der
     Tankstellenname fehlt.</font>"

        if(!
    $Tankstellenadresse$fehler[] = "<font class='td2_ueberschrift'>Die 
    Tankstellenadresse fehlt.</font>"

        if(!
    $Stadt$fehler[] = "<font class='td2_ueberschrift'>Die Stadt 
    fehlt.</font>"

        if(!
    $Zeit$fehler[] = "<font class='td2_ueberschrift'>Die 
    Feststellungszeit fehlt.</font>"


        if(!
    count($fehler)) 
        { 
        
    // Sendet Email, wenn Pr&uuml;fung "ok" 

        
    $verbindung mysql_connect ("localhost","sss","sss");    

      
    mysql_select_db("usr_sss_1"); 
        
    $Id 0
      
      
            
    $aendern "UPDATE Tankstellen Set BenzinPreis='$BenzinPreis', 
    SuperPreis='
    $SuperPreis', SuperPlusPreis='$SuperPlusPreis',
    DieselPreis='
    $DieselPreis', Zeit='$Zeit'"

      

      
      
            
    $eintrag "INSERT INTO Tankstellen (Tankstellenname, 
    Tankstellenadresse, Stadt, PLZ, BenzinPreis, SuperPreis, SuperPlusPreis, 
    DieselPreis, Zeit) 

        VALUES 
        ('
    $Tankstellenname', '$Tankstellenadresse', '$Stadt', '$PLZ', '$BenzinPreis', 
    '
    $SuperPreis', '$SuperPlusPreis', '$DieselPreis', '$Zeit')"




        if(
    mysql_query("$eintrag")==falsemysql_query("$aendern"); 



        
        
        
    mysql_close($verbindung); 

        echo(
    "<p>Ihre Nachricht wurde erfolgreich versendet.<p>\n"); 

        } 

          else 
        { 
    // Fehlerausgabe, wenn Felder leer waren 
          
    echo "<font>Beim Senden trat folgender Fehler auf:</font>"
          echo 
    "<ul><li>".implode("<li>",$fehler)."</ul>"
        } 
      } 
    ?>
    HINWEIS:
    In der Datenbank liegt ein UNIQUE über plz; STADT und Tankstellennamen.
    Gleich lautende einträge können also nicht eingefügt werden -> false wird zurüchgegeben und dadurch $aendern ausgeführt. welches diesen betreffenden Datensatz aktualisieren soll. Dazu fehlt mir nun die Where anweisung, weil ich nicht weiß, wie ich der DB so klar machen kann, wo es überschreiben soll...

    Wenn ich nun einen neuen Eintrag über das formular mache und er feststellt, dass die Drei UNIQUE Felder PLZ; STADT und Tankstellenname schon vorhanden sind (alle drei in einem Datensatz gleich), dann soll er ja den Eintrag anstatt ihn als neuen Datensatz zu schreiben nur den bestehenden ändern.

    Nun macht er das leider nur nicht richtig.

    Er aktualisiert derzeit einfach alle Datensätze auf diese Preise ...


    Ich denke das ich in dem $aendern eben sagen muss, welchen Datensatz er aendern soll, nämlich ja den, den er als vorhanden erkennt?!
    Nur wie sag ich ihm das?
    Zuletzt geändert von Wahlkreis160; 09.09.2005, 17:53.

  • #2
    Nur wie sag ich ihm das?
    na, mit WHERE
    Code:
    WHERE  PLZ = 'eingegebener wert' 
    AND STADT = 'eingegebener wert'
    AND Tankstellenname = 'eingegebener wert'
    umbrichst du bitte deinen beitrag?
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      Ein Beispiel, wie du WHERE verwenden kannst, findest du in meinem Artikel:

      http://www.heddesheimer.de/coaching/mysql_adressen.html

      In deinem Fall wirst du die WHERE-Klausel auf alle drei Felder ausdehnen müssen, da sie ja alle drei übereinstimmen sollen (also WHERE PLZ='$plz' and tankstelle = '$tankstelle' and stadt = '$stadt').

      Frage: wäre es nicht möglich "stadt" als unique Index wegzulassen? Die sollte doch eigentlich auch über die PLZ eindeutig sein?

      Gruß Marian
      Online-Kurse die jeder versteht: HTML, PHP, MySQL, Word, Excel
      http://www.lernpilot.de/wbt/

      Kommentar


      • #4
        Original geschrieben von derHund
        umbrichst du bitte deinen beitrag? [/B]
        Das verstehe ich jetzt nicht? "Umbrichst"?
        Wenn du mir sagst, wie du das meinst, dann bearbeite ich meinen Beitrag sehr gerne! :-)





        Ja, stimmt, eigentlich ist die PLZ und die Stadt voneinader ja abhängig. Demnach kann ich natürlich die Stadt aus dem Unique rauslassen. Danke für den Tipp!
        :-)

        Kommentar


        • #5
          "Umbrichst" -> umbrechen, damit man nicht mehr horizontal scrollen muss. Steht übrigens in dem Sticky, den JEDER lesen sollte, bevor er hier was postet.

          Kommentar


          • #6
            achso ja den Sticky... naja angeschaut habe ich ihn, aber nur überflogen. das geb ich zu :-)



            Danke für eure Hilfe, ich habe es nun hinbekommen. danke.
            Hatte es mir fast schon so gedacht. habe aber die Where angaben mit "," getrennt, anstatt mir "and".
            Nun habe ich es!

            danke!

            Kommentar


            • #7
              habe aber die Where angaben mit "," getrennt, anstatt mir "and".
              das soll hoffentlich ein scherz sein?
              Die Zeit hat ihre Kinder längst gefressen

              Kommentar

              Lädt...
              X