[PHP] Sql Update

Dieses Thema im Forum "Webentwicklung" wurde erstellt von uRph03n1x, 13. Januar 2008 .

Schlagworte:
  1. 13. Januar 2008
    Sql Update

    Hi Leute,

    habe mich heute mal bisschen mit MYSQL auseinander gesetzt und bin bei der Update funktion auf folgenden fehler gestoßen.

    Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /var/www/web1/html/projectX/edit.php on line 76

    Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /var/www/web1/html/projectX/edit.php on line 143

    usw.... in jedem feld was ich updaten will.

    wie ist das ganze aufgebaut?
    es sind edit felder, in denen der ehemalige inhalt geladen wird aus der datenbank den man dann beliebig ändern kann. dann wird aufn button geklickt und der update befehl wird ausgeführt.

    Vor dem klick auf den Button wird noch alles ordnungsgemäß ausgegeben. danach kommen die oben genannten fehler

    Hier ist mein quelltext:
    PHP:
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Unbenanntes Dokument</title>
    <style type="text/css">
    <!--
    .Stil10 {font-family: Verdana, Arial, Helvetica, sans-serif;
        color: #FF6600;
        font-size: x-small;
        font-weight: bold;
    }
    .Stilprofil {font-family: Verdana, Arial, Helvetica, sans-serif;
        color: #000000;
        font-size: x-small;
        
    }
    .Stil6_blue {font-family: Verdana, Arial, Helvetica, sans-serif;
        color: #000066;
        font-size: x-small;
        font-weight: bold;
    }
    .Stil_table_border {border: 1px dotted #000000;
    }
    .Stil21 {font-family: Verdana, Arial, Helvetica, sans-serif; font-weight: bold; font-size: x-small; }
    -->
    </style>
    <script type="text/JavaScript">
    <!--
    function MM_preloadImages() { //v3.0
      var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
        var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
        if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
    }
    //-->
    </script>
    </head>
    <? $uid  $_GET [ 'userid' ];  ?>

    <body>
    <table width="550" border="0" align="center" cellpadding="0" cellspacing="1" class="Stil_table_border">
      <tr>
        <td height="30" background="images/menu.png" bgcolor="#FFFFFF"><div align="center" class="Stil10">
          <div align="left" class="Stil6_blue">Profil von <?  include ( "db_connect.php" );
                  
    $abfrage  "SELECT user_nick FROM user WHERE user_id =  $uid " ;
                  
    $ergebnis  mysql_query ( $abfrage ); while( $row  mysql_fetch_object ( $ergebnis ))
                { echo 
    " $row -> user_nick " ; }  mysql_close ();  ?></div>
        </div></td>
      </tr>
      <tr>
        <td height="70" valign="middle" bgcolor="#F1F1F1"><div align="center">
          <form id="form1" name="form1" method="post" action="?section=edit&send=done">
            <table width="100%" border="0" cellpadding="0" cellspacing="2">
              <tr>
                <td width="24%" bgcolor="#dddddd"><div align="center"><span class="Stil21">Avatar</span></div></td>
                <td width="16%" bgcolor="#dddddd"><div align="left"><span class="Stil21">Nickname</span></div></td>
                <td width="60%"><div align="left"><span class="Stilprofil">            
                  <?  include ( "db_connect.php" );
                  
    $abfrage  "SELECT user_nick FROM user WHERE user_id =  $uid " ;
                  
    $ergebnis  mysql_query ( $abfrage ); 
                while(
    $row  mysql_fetch_object ( $ergebnis ))
                { 
                echo 
    " $row -> user_nick "
                } 
                
    mysql_close ();  ?>
                </span></div></td>
                </tr>
              <tr>
                <td rowspan="13" valign="top" bgcolor="#dddddd">
                  <div align="center"><span class="Stilprofil">
                    <br />
                    <?  include ( "db_connect.php" );
                  
    $abfrage  "SELECT user_avatar FROM user WHERE user_id =  $uid " ;
                  
    $ergebnis  mysql_query ( $abfrage ); 
                while(
    $row  mysql_fetch_object ( $ergebnis ))
                { 
                echo 
    "<img src=\" $row -> avatar \"></img>"
                } 
                
    mysql_close ();  ?>
                  </span><br />
                  <textarea name="edit_avatar" cols="15" rows="3" id="edit_avatar"><?  include ( "db_connect.php" );
                  
    $abfrage  "SELECT user_avatar FROM user WHERE user_id =  $uid " ;
                  
    $ergebnis  mysql_query ( $abfrage ); 
                while(
    $row  mysql_fetch_object ( $ergebnis ))
                { 
                echo 
    " $row -> user_avatar "
                } 
                
    mysql_close ();  ?></textarea>
                  <br />
                  </div></td>
                <td bgcolor="#dddddd"><div align="left"><span class="Stil21">Vorname</span></div></td>
                <td><div align="left"><span class="Stilprofil">
                  <?  include ( "db_connect.php" );
                  
    $abfrage  "SELECT user_vname FROM user WHERE user_id =  $uid " ;
                  
    $ergebnis  mysql_query ( $abfrage ); 
                while(
    $row  mysql_fetch_object ( $ergebnis ))
                { 
                echo 
    " $row -> user_vname "
                } 
                
    mysql_close ();  ?>
                </span>
                    <label></label>
                </div></td>
                </tr>
              <tr>
                <td bgcolor="#dddddd"><div align="left"><span class="Stil21">Nachname</span></div></td>
                <td><div align="left">
                  <input name="edit_nachname" type="text" id="edit_nachname" value="<?  include ( "db_connect.php" );
                  
    $abfrage  "SELECT user_nname FROM user WHERE user_id =  $uid " ;
                  
    $ergebnis  mysql_query ( $abfrage ); 
                while(
    $row  mysql_fetch_object ( $ergebnis ))
                { 
                echo 
    " $row -> user_nname "
                } 
                
    mysql_close ();  ?>" />
                </div></td>
                </tr>
              <tr>
                <td bgcolor="#dddddd"><div align="left"><span class="Stil21">Status</span></div></td>
                <td class="Stilprofil">              
                  
                    <div align="left"><span class="Stilprofil">
                      
                    </span>
                      <label>
                      <select name="edit_status" id="edit_status">
                        <option value="keine Angabe" selected="selected">keine Angabe</option>
                        <option value="single">single</option>
                        <option value="auf der Suche">auf der Suche</option>
                        <option value="vergeben">vergeben</option>
                        <option value="verheiratet">verheiratet</option>
                      </select>
                      </label>
                    </div></td>
              </tr>
              <tr>
                <td bgcolor="#DDDDDD" class="Stilprofil"><strong class="Stil21">Geburtsdatum</strong></td>
                <td class="Stilprofil"><div align="left"><span class="Stilprofil">
                  <?  include ( "db_connect.php" );
                  
    $abfrage  "SELECT user_gebdat FROM user WHERE user_id =  $uid " ;
                  
    $ergebnis  mysql_query ( $abfrage ); 
                while(
    $row  mysql_fetch_object ( $ergebnis ))
                { 
                echo 
    " $row -> user_gebdat "
                } 
                
    mysql_close ();  ?>
                </span></div></td>
              </tr>
              <tr>
                <td bgcolor="#dddddd"><div align="left"><span class="Stil21">Email</span></div></td>
                <td><div align="left">
                  <input name="edit_email" type="text" id="edit_email" value="<?  include ( "db_connect.php" );
                  
    $abfrage  "SELECT user_email FROM user WHERE user_id =  $uid " ;
                  
    $ergebnis  mysql_query ( $abfrage ); 
                while(
    $row  mysql_fetch_object ( $ergebnis ))
                { 
                echo 
    " $row -> user_email "
                } 
                
    mysql_close ();  ?>" />
                </div></td>
              </tr>
              <tr>
                <td bgcolor="#dddddd"><div align="left"><span class="Stil21">Wohnort</span></div></td>
                <td><div align="left">
                  <input name="edit_wohnort" type="text" id="edit_wohnort" value="<?  include ( "db_connect.php" );
                  
    $abfrage  "SELECT user_wohnort FROM user WHERE user_id =  $uid " ;
                  
    $ergebnis  mysql_query ( $abfrage ); 
                while(
    $row  mysql_fetch_object ( $ergebnis ))
                { 
                echo 
    " $row -> user_wohnort "
                } 
                
    mysql_close ();  ?>" />
                </div></td>
              </tr>
              <tr>
                <td height="25"><div align="left"><span class="Stilprofil"></span></div></td>
                <td height="25"><div align="left"><span class="Stilprofil"></span></div></td>
              </tr>
              <tr>
                <td bgcolor="#dddddd"><div align="left"><span class="Stil21">ICQ</span></div></td>
                <td><div align="left">
                  <input name="edit_icq" type="text" id="edit_icq" value="<?  include ( "db_connect.php" );
                  
    $abfrage  "SELECT user_icq FROM user WHERE user_id =  $uid " ;
                  
    $ergebnis  mysql_query ( $abfrage ); 
                while(
    $row  mysql_fetch_object ( $ergebnis ))
                { 
                echo 
    " $row -> user_icq "
                } 
                
    mysql_close ();  ?>" />
                </div></td>
              </tr>
              <tr>
                <td bgcolor="#dddddd"><div align="left"><span class="Stil21">MSN</span></div></td>
                <td><div align="left">
                  <input name="edit_msn" type="text" id="edit_msn" value="<?  include ( "db_connect.php" );
                  
    $abfrage  "SELECT user_msn FROM user WHERE user_id =  $uid " ;
                  
    $ergebnis  mysql_query ( $abfrage ); 
                while(
    $row  mysql_fetch_object ( $ergebnis ))
                { 
                echo 
    " $row -> user_msn "
                } 
                
    mysql_close ();  ?>" />
                </div></td>
              </tr>
              <tr>
                <td bgcolor="#dddddd"><div align="left"><span class="Stil21">Skype</span></div></td>
                <td><div align="left">
                  <input name="edit_skype" type="text" id="edit_skype" value="<?  include ( "db_connect.php" );
                  
    $abfrage  "SELECT user_skype FROM user WHERE user_id =  $uid " ;
                  
    $ergebnis  mysql_query ( $abfrage ); 
                while(
    $row  mysql_fetch_object ( $ergebnis ))
                { 
                echo 
    " $row -> user_skype "
                } 
                
    mysql_close ();  ?>" />
                </div></td>
              </tr>
              <tr>
                <td bgcolor="#dddddd"><div align="left"><span class="Stil21">Homepage</span></div></td>
                <td><div align="left">
                  <input name="edit_homepage" type="text" id="edit_homepage" value="<?  include ( "db_connect.php" );
                  
    $abfrage  "SELECT user_homepage FROM user WHERE user_id =  $uid " ;
                  
    $ergebnis  mysql_query ( $abfrage ); 
                while(
    $row  mysql_fetch_object ( $ergebnis ))
                { 
                echo 
    " $row -> user_homepage "
                } 
                
    mysql_close ();  ?>" />
                </div></td>
              </tr>
              <tr>
                <td height="25"><div align="left"><span class="Stilprofil"></span></div></td>
                <td height="25"><div align="left"><span class="Stilprofil"></span></div></td>
              </tr>
              <tr>
                <td valign="top" bgcolor="#dddddd"><div align="left"><span class="Stil21">Motto</span></div></td>
                <td valign="top"><div align="left">
                  <input name="edit_motto" type="text" id="edit_motto" value="<?  include ( "db_connect.php" );
                  
    $abfrage  "SELECT user_motto FROM user WHERE user_id =  $uid " ;
                  
    $ergebnis  mysql_query ( $abfrage ); 
                while(
    $row  mysql_fetch_object ( $ergebnis ))
                { 
                echo 
    " $row -> user_motto "
                } 
                
    mysql_close ();  ?>" />
                </div></td>
              </tr>
              <tr>
                <td valign="top">&nbsp;</td>
                <td height="25" valign="top"><div align="left"></div></td>
                <td height="25" valign="top"><div align="left"></div></td>
              </tr>
              <tr bgcolor="#eeeeee">
                <td colspan="3" valign="top" bgcolor="#dddddd"><span class="Stil21">&Uuml;ber</span>              <div align="left"></div></td>
                </tr>
              <tr>
                <td colspan="3" valign="top" bgcolor="#dddddd"><textarea name="edit_ueber" cols="70" rows="5" id="edit_ueber"><?  include ( "db_connect.php" );
                  
    $abfrage  "SELECT user_ueber FROM user WHERE user_id =  $uid " ;
                  
    $ergebnis  mysql_query ( $abfrage ); 
                while(
    $row  mysql_fetch_object ( $ergebnis ))
                { 
                echo 
    " $row -> user_ueber "
                } 
                
    mysql_close ();  ?></textarea></td>
                </tr>
              <tr>
                <td colspan="3" valign="top" bgcolor="#dddddd"><label>
                  <div align="center">
                    <input type="submit" name="button" id="button" value="Profil aktualisieren" />
                    <br />
                  <? 
                  $edit_avatar 
    $_POST [ 'edit_avatar' ];
                  
    $edit_nachname  $_POST [ 'edit_nachname' ];
                  
    $edit_status  $_POST [ 'edit_status' ];
                  
    $edit_email  $_POST [ 'edit_email' ];
                  
    $edit_wohnort  $_POST [ 'edit_wohnort' ];
                  
    $edit_icq  $_POST [ 'edit_icq' ];
                  
    $edit_msn  $_POST [ 'edit_msn' ];
                  
    $edit_skype  $_POST [ 'edit_skype' ];
                  
    $edit_motto  $_POST [ 'edit_motto' ];
                  
    $edit_ueber  $_POST [ 'edit_ueber' ];
                  
                  if (
    $_GET [ 'send' ] ==  'done' ) {
                      include (
    "db_connect.php" );
                  
                      
    $aendern  "UPDATE user SET 
                    user_avatar = '
    $edit_avatar ',
                    user_nname = '
    $edit_nachname ', 
                    user_status = '
    $edit_status ',
                    user_email = '
    $edit_email ',
                    user_wohnort = '
    $edit_wohnort ',
                    user_icq = '
    $edit_icq ',
                    user_msn = '
    $edit_msn ',
                    user_skype = '
    $edit_skype ',
                    user_motto = '
    $edit_motto ',
                    user_ueber = '
    $edit_ueber '
                    WHERE user_id = 
    $uid " ;
                    
    $update  mysql_query ( $aendern );
      
                      
    mysql_close ();
                    echo 
    "Profil aktualisiert"
                    }
                      
    ?>
     
    </div>
                </label></td>
              </tr>
            </table>
          </form>
        </div></td>
      </tr>
    </table>
    </body>
    </html>
    Ich hoffe ihr könnt mir helfen. Bewertung ist natürlich drin

    Gruß
    uRph03n1x
     
  2. 13. Januar 2008
    AW: Sql Update

    Wie genau ist denn der code in den betroffenen Zeilen? Für mich sieht das so aus als ob du ein mysql_fetch_object() auf das result eines Datenmodifizierungsbefehls anwenden willst, was logischerweise nicht möglich ist, da diese keine Rückgabewerte haben.

    Gruß,
    Figger
     
  3. 13. Januar 2008
    AW: Sql Update

    Hi,

    der Code in den Zeilen dient eigentlich noch zur ausgabe der alten inhalte die noch in der datenbank stehen // vor dem update

    nach dem Updateknopf sollen Sie aktualisiert werden dabei kommt folgender fehler z.b. in zeile 62

    Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /var/www/web1/html/projectX/edit.php on line 62


    PHP:
    60 $abfrage  "SELECT user_nick FROM user WHERE user_id =  $uid " ;
    61 :               $ergebnis  mysql_query ( $abfrage ); 
    62 :            while( $row  mysql_fetch_object ( $ergebnis ))
    63 :            { 
    64 :            echo  " $row -> user_nick "
    65 :            } 
    66 :             mysql_close ();
    Und der update befehl sollte meiner meinung nach stimmen soweit ich das gelesen habe..... zumindest geht der auch bei den profilaufrufen wo der counter erhöht wird
    PHP:
      <? $uid  $_GET [ 'userid' ];  ?>
      <?php
      
    include ( "db_connect.php" );
      
    $aendern  "UPDATE user SET user_profilaufrufe = user_profilaufrufe + 1 WHERE user_id =  $uid " ;
      
    $update  mysql_query ( $aendern );
      
      
    mysql_close (); 
      
    ?>
    und dann ausgegeben wird
    PHP:
                  <?  include ( "db_connect.php" );
                  
    $abfrage  "SELECT user_profilaufrufe FROM user WHERE user_id =  $uid " ;
                  
    $ergebnis  mysql_query ( $abfrage ); 
                while(
    $row  mysql_fetch_object ( $ergebnis ))
                { 
                echo 
    " $row -> user_profilaufrufe "
                } 
                
    mysql_close ();  ?>
    nur das ich jetzt beim profil aktualisieren mehr einträge nehme
     
  4. 13. Januar 2008
    AW: Sql Update

    Hm sicher dass du keine Fehler in der SQL abfrage hast?

    //edit: hm, sorry, da kann ich dir leider auch nicht weiterhelfen. Hab deinen code jetzt noch mal 3x auf tippfehler untersucht aber nix gefunden ^^ Aber wenn du den Fehler findest, dann poste ihn doch bitte hier, es würde mich interessieren

    Gruß,
    Figger
     
  5. 13. Januar 2008
    AW: Sql Update

    sicher bin ich mir nicht.... die ausgabe geht richtig das steht fest.... nur nach dem updatebefehl kommt der fehler und das profil wird NICHT aktualisiert

    wie gesagt die ausgabe geht soweit nur nicht das update beim counter funktioniert das update auch so

    gruß
    uRph03n1x
     
  6. 13. Januar 2008
    AW: Sql Update

    hmm, als erstes reicht es wenn du 1 mal die datenbank connectest.

    gib mal deine sql aus:

    $abfrage = "SELECT user_nick FROM user WHERE user_id = $uid";
    echo $abfrage;

    bzw fang den fehler mal ab, falls einer vorhanden ist:

    $ergebnis = mysql_query($abfrage) or die(mysql_error());

    und als 3 versuch probier mal diese sql:
    $abfrage = "SELECT `user_nick` FROM `user` WHERE `user_id` = '$uid'";

    wobei ich nicht glaube damit es da dran liegt ^^
     
  7. 13. Januar 2008
    AW: Sql Update

    für user 1
    SELECT user_nick FROM user WHERE user_id = 1

    Da kommt folgende Meldung
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

    wenn ich das so mache mit den ` dann kommt zwar keine fehlermeldung mehr aber er führt auch das update nicht aus..... aber wenigstens schonmal keine fehlermeldung mehr xD
     
  8. 13. Januar 2008
    AW: Sql Update

    Selection:
    $abfrage = "SELECT user_nick FROM user WHERE user_id = '$uid' ";

    Updaten:
    $aendern = "UPDATE user SET user_profilaufrufe = user_profilaufrufe + 1 WHERE user_id = '$uid' ";
    mysql_query($aendern) or die(mysql_error());
    ich denke, dass du beim update mysql_query nicht noch extra eine variable festlegen musst.

    so würde ich es schreiben.
    wenn nicht überprüf mal, ob die variable $uid überhaupt ein wert enthält:
    am ende der datei in php schrieben: print_r($uid);
     
  9. 13. Januar 2008
    AW: Sql Update

    Also dein Quelltext ist geprägt von schlechtem HTML, von schlechtem PHP - Code, von Redundanzen und Sicherheitslücken. Wieso arbeitst du nicht zuerstmal selbst ordentlich ein Tutorial durch, bevor du deine Arbeit von anderen machen läßt. Hier ist keine Frage zu finden die nicht selbst als Anfänger zu lösen ist.

    Haste dir schonmal das [G]Quakenet PHP Tutorial[/G] reingetan!?
     
  10. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.