Update oder Insert wählen

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

  • Update oder Insert wählen

    Hallo !

    Ich prüfe ob der User schon in der Tabelle steht, wenn ja, dann
    soll er die Daten updaten, wenn nicht, sollen die neuen Daten
    gespeichert (insert) werden. Leider speichert er mir immer
    den neune Datensatz ohne zu prüfen ob der user schon
    vorhanden ist.

    PHP-Code:
     if ($aktion == "mehr_speichern") {

        


      
    $query "SELECT * FROM dateuser_mehr ";
      
    $resulta mysql_query($query) or die("Anfrage fehlgeschlagen: " mysql_error());
      
     while(
    $row mysql_fetch_object($resulta)){
      
      if (
    $user == $row->user) {
     
    $queryb "UPDATE dateuser_mehr SET traummann = '$traummann',
      beziehung = '
    $beziehung', treue = '$treue', seitensprung = '$seitensprung', 
    eifersucht =   '
    $eifersucht', eifersucht = '$eifersucht', ************ = '$************', 
    wieviele_beziehungen = '
    $wieviele_beziehungen', romantik = '$romantik' ,
     freunde ='
    $freunde' , familie = '$familie', geld = '$geld', erfolg = '$erfolg',  
    abwechslung = '
    $abwechslung', traeume = '$traeume' , traeumer = '$traeumer
    where user = '
    $user' ";
    $eintragen1 mysql_query($queryb);
       
                 }
                 elseif(!isset(
    $user))
                 {
             
         
    $queryc="INSERT INTO dateuser_mehr (traummann, beziehung,
     treue, seitensprung, eifersucht, ************, wieviele_beziehungen, romantik, freunde, familie,
     geld, erfolg, abwechslung, traeume, traeumer, user) values('
    $traummann','$beziehung',
    '
    $treue','$seitensprung',
    '
    $eifersucht', '$************','$wieviele_beziehungen', '$romantik', '$freunde','$familie','$geld','$erfolg','$abwechslung',
    '
    $traeume','$traeumer', '$user')";
     
               
    mysql_query($queryc) or die("Anfrage fehlgeschlagen2: " mysql_error());                             
     
                } 
           }
        
    $daten mysql_query "SELECT * FROM dateuser_mehr WHERE user='$o_user'" );
        
    $datensatz mysql_fetch_array($daten);
        
    $nachricht "Daten wurden gespeichert !"
        
    $site="uebermich/mehr_ueber_mich";
        include(
    "my_berlindaters2.php");


  • #2
    warum nicht
    PHP-Code:
    $query 'SELECT * FROM dateuser_mehr WHERE user = '."'".$user."'"
    und dann
    PHP-Code:
    if ($row->user
    anderenfalls
    nein
    PHP-Code:
    elseif(!isset($user)) 
    ja
    PHP-Code:
    else if(!$user
    vielleicht wurde die variable $user schon gesetzt, hat aber keinen inhalt.

    gruß
    peter
    Zuletzt geändert von Kropff; 06.12.2005, 17:29.
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Und warum nicht:

      Code:
      SELECT COUNT(*) FROM dateuser_mehr WHERE user = '{$user}'
      ??
      carpe noctem

      [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
      [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

      Kommentar


      • #4
        Ich prüfe ob der User schon in der Tabelle steht, wenn ja, dann
        soll er die Daten updaten, wenn nicht, sollen die neuen Daten
        gespeichert (insert) werden.
        Eventuell mal über ON DUPLICATE KEY UPDATE ... nachdenken !

        http://dev.mysql.com/doc/refman/5.0/en/insert.html

        Damit ist folgendes möglich: Wenn ein bestehender Wert exisitert dann updaten, wenn nicht ->anlegen!

        Müsste man natürlich mal nachsehen, ab welcher MySQL Version soetwas unterstützt wird.
        Ich möchte ein Tutorial über ein dynamisches Rechtemanagement-System schreiben (mit Rechtevererbung). Suche nach Freiwilligen! -> php_jan@freenet.de

        Kommentar


        • #5
          Original geschrieben von php_jan
          Eventuell mal über ON DUPLICATE KEY UPDATE ... nachdenken !

          http://dev.mysql.com/doc/refman/5.0/en/insert.html

          Damit ist folgendes möglich: Wenn ein bestehender Wert exisitert dann updaten, wenn nicht ->anlegen!

          Müsste man natürlich mal nachsehen, ab welcher MySQL Version soetwas unterstützt wird.
          warum nicht einfach REPLACE?

          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
          Wie man Fragen richtig stellt

          Kommentar


          • #6
            weil der primary-key hierbei wahrscheinlich auf einem autoinc. feld liegt. daher macht das nicht wirklich sinn mit REPLACE ;-)
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              vielleicht wurde die variable $user schon gesetzt, hat aber keinen inhalt.
              Also ist eventuell mal wieder register_globals auf off und $user leer, weil nicht mit
              PHP-Code:
              $user $_POST['user']; 
              gesetzt.
              Die zehn Gebote sind deswegen so kurz und logisch, weil sie ohne Mitwirkung von Juristen zustande gekommen sind. (Charles de Gaulle)

              Kommentar


              • #8
                Original geschrieben von Abraxax
                weil der primary-key hierbei wahrscheinlich auf einem autoinc. feld liegt. daher macht das nicht wirklich sinn mit REPLACE ;-)
                tja...hab nur den letzten Post gelesen
                dumme Frage Nummer 2:
                Wozu Anmeldung und Update auf einer Seite?


                PHP-Code:
                $user $_POST['user']; 
                bring ihn nicht auf dumme Gedanken! Oo,

                Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                Wie man Fragen richtig stellt

                Kommentar

                Lädt...
                X