Update oder Insert wählen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    Last edited by Kropff; 06-12-2005, 16:29.
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Comment


    • #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]

      Comment


      • #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

        Comment


        • #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

          Comment


          • #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 |


            Comment


            • #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)

              Comment


              • #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

                Comment

                Working...
                X