problem mit update

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

  • problem mit update

    ich habe folgende fehlermeldung:
    Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\Apache2\...

    ich frage aus meiner sporttabelle mehrere (7) spielpaarungen aus einer runde ab. diese werden mit einem input für heimtore und einem für gasttore und einem hidden-input für die id ausgegeben. das funktioniert. das ganze in einem formular das ich mit <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" name="eintragungen"> übergebe.

    PHP-Code:
    $sql "
    UPDATE 'spiele' SET 
    'heimtore' = '"
    .$_POST['heimtore']."', 
    'gasttore' = '"
    .$_POST['gasttore']."' 
    WHERE 'id' = '"
    .$_POST['id']."'";

    mysql_query($sql$connect) or die("
    Die Daten konnten nicht in die Datenbank aufgenommen werden!"
    ); 
    ich habe das ganze aus meinem gästebuch übernommen, bei dem es einwandfrei funktioniert.

  • #2
    hast du schon ein
    PHP-Code:
    echo sql
    eingebaut und deisen string in phpmyadmin getestet?

    könnte es an den einfachen anführungszeichen beim tabellennamen liegen?
    ....

    Kommentar


    • #3
      mit dem echo sql ist folgendes ausgegeben worden (ohne '' bei spiele):
      UPDATE spiele SET 'heimtore' = '2', 'gasttore' = '2' WHERE 'id' = '23'
      (ich habe 2:2 eingeben) - das müßte also passen
      habs jetzt in phpmyadmin getestet:
      #1064 - You have an error in your SQL syntax
      werde das einmal weiter verfolgen

      Kommentar


      • #4
        das müßte also passen

        PHP-Code:
        $sql '
          UPDATE 
            spiele 
          SET 
            heimtore = '
        .(int)$_POST['heimtore'].', 
            gasttore = '
        .(int)$_POST['gasttore'].'
          WHERE 
            id = '
        .(int)$_POST['id'].'
        '

        bei der fehlermeldung
        - You have an error in your SQL syntax
        steht sicher noch mehr?
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          UPDATE spiele SET heimtore = 2, gasttore = 2 WHERE id = 23
          von der ausgabe $sql passt es.
          aber es kommt immer noch:
          Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\Apache2\xampp\htdocs\PROJEKTE\Jedenspeigen\admin-ergebnisse.php on line 121
          und da steht: line 121:
          mysql_query($sql, $connect) or die("
          Die Daten konnten nicht in die Datenbank aufgenommen werden!");

          $connect habe ich über include eingebunden:
          $connect = mysql_connect($host, $user, $pwd) or die("Keine Verbindung zum Datenbankserver!");

          Kommentar


          • #6
            kann es vielleicht daran liegen, dass ich ja mehrere zeilen ausgebe und nur einen update befehl ohne schleife habe
            PHP-Code:
            $paarungen mysql_query("
            SELECT  s.id, 
                    v1.name AS Heimteam, 
                    v2.name AS Gastteam, 
                    s.heimtore, 
                    s.gasttore 
            FROM    spiele s 
            INNER JOIN verein v1 ON s.id_heimverein = v1.id 
            INNER JOIN verein v2 ON s.id_gastverein = v2.id 
            WHERE spieltag = "
            .$_GET['Runde'].
            GROUP BY s.id"
            ) or die(mysql_error());

            while(
            $row mysql_fetch_array($paarungen)) 
            {
                    echo 
            '<tr>';
                echo 
            '<td class="liga">'.$row["Heimteam"].'</td>';
                    echo 
            '<td class="liga">'.$row["Gastteam"].'</td>';
                    
                    echo 
            '<td class="liga"><input type="text" name="heimtore" value="'.$row[3].'" size=2>'#Heimtore
                    
            echo ' : <input type="text" name="gasttore" value="'.$row[4].'" size=2>'#Gasttore
                    
            echo '<input type="hidden" name="id" value="'.$row[0].'"></td></tr>';

            }
            ?>

            <tr><td colspan=4 align=right style="background-color:white;padding-top:20px;">
              <input type="submit" value="speichern" name="submit">
            </table>
            </form> 

            Kommentar


            • #7
              von der ausgabe $sql passt es.
              teste die query dochmal im php_my_admin, ...
              aber es kommt immer noch:
              [B]Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in

              PHP-Code:
              mysql_query(...) or die (mysql_error()); 
              Die Zeit hat ihre Kinder längst gefressen

              Kommentar


              • #8
                in phpmyadmin passt es so. hab ich mit echo $sql ausprobiert.
                bei or die (mysql_error()) kommt die selbe fehlermeldung wie zuvor:
                Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\Apache2\xampp\htdocs\PROJEKTE\Jedenspeigen\admin-ergebnisse.php on line 121
                ???
                soll ich mal den geamten quelltext posten?

                Kommentar


                • #9
                  mach doch noch ein
                  PHP-Code:
                  echo $connect
                  um zu testen, das die verbindung wirklich besteht;
                  eventuell wurde die funktion falsch deklariert....

                  vom fehlertext wurde ich darauf tippen

                  Kommentar


                  • #10
                    in phpmyadmin passt es so. hab ich mit echo $sql ausprobiert.
                    wenn du die generierte, ausgegebene query in pma testest, geht es?
                    bei or die (mysql_error()) kommt die selbe fehlermeldung wie zuvor:
                    Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in
                    dann stehts an der falschen stelle
                    soll ich mal den geamten quelltext posten?
                    nein, es reicht, wenn du zeile 115 - 125 postest ...
                    Die Zeit hat ihre Kinder längst gefressen

                    Kommentar


                    • #11
                      bei $connect hat gar nichts ausgegeben. hier die connect.inc.php:
                      $host = "***";
                      $user = "***";
                      $pwd = "***";
                      $db = "***";
                      $connect = mysql_connect($host, $user, $pwd) or die("Keine Verbindung zum Datenbankserver!");
                      $select_db = mysql_select_db($db) or die("Konnte die Datenbank $db nicht auswählen!");
                      PHP-Code:
                      <?php
                      if(@!$submit) {
                      ?>

                      <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>
                      name="eintragungen">
                      <table border=0>
                      <?php
                      include('cgi-bin/connect.inc.php');
                      $paarungen mysql_query("
                      SELECT  s.id, 
                              v1.name AS Heimteam, 
                              v2.name AS Gastteam, 
                              s.heimtore, 
                              s.gasttore 
                      FROM    spiele s 
                      INNER JOIN verein v1 ON s.id_heimverein = v1.id 
                      INNER JOIN verein v2 ON s.id_gastverein = v2.id 
                      WHERE spieltag = "
                      .$_GET['Runde'].
                      GROUP BY s.id"
                      ) or die(mysql_error());

                      while(
                      $row mysql_fetch_array($paarungen)) 
                      {
                      echo 
                      '<tr>';
                      echo 
                      '<td class="liga">'.$row["Heimteam"].'</td>';
                      echo 
                      '<td class="liga">'.$row["Gastteam"].'</td>';
                      echo 
                      '<td class="liga">
                      <input type="text" name="heimtore" value="'
                      .$row[3].'" size=2>'#Heimtore
                      echo ' : <input type="text" name="gasttore" value="'.$row[4].'" size=2>'#Gasttore
                      echo '<input type="hidden" name="id" value="'.$row[0].'"></td></tr>';
                      }
                      ?>
                      <tr><td colspan=4 align=right>
                        <input type="submit" value="speichern" name="submit">
                      </table>
                      </form>

                      <?php
                      }else{
                      $sql '
                        UPDATE 
                          spiele 
                        SET 
                          heimtore = '
                      .(int)$_POST['heimtore'].', 
                          gasttore = '
                      .(int)$_POST['gasttore'].'
                        WHERE 
                          id = '
                      .(int)$_POST['id'].'
                      '
                      ;


                      echo 
                      $sql;

                          echo 
                      "<table align=center><tr><td>
                              <a href=\"admin-ergebnisse.php\" onMouseOver=\"window.status=' ';return true;\">
                                      Zur&uuml;ck zur Tabelle
                                      </a></td></tr></table>"
                      ;

                      mysql_query($sql$connect) or die (mysql_error());
                      }
                      ?>

                      Kommentar


                      • #12
                        wie?
                        PHP-Code:
                        echo $connect
                        gibt dir weder in connect.inc.php noch in deinem script einen wert aus?
                        hier sollte eigentlich die id der verbindung zum sql server enthalten sein.

                        Kommentar


                        • #13
                          im script hat es mir nichts ausgegeben. jetzt hab ich es auch in der connect.inc.php versucht.
                          da gibt er mit Resource id #3 aus. was auch immer das bedeutet?!

                          Kommentar


                          • #14
                            diese id ist die kennung deiner mysql-verbindung

                            bin mir zwar nicht sicher, warum diese varibale nicht per include mit übernommen wird, aber versuche doch mal die verbindung als function zu deklarieren:

                            PHP-Code:
                            function verbindungzurdatenbank (&$connect/*funktionsname - 
                            & bewirkt die übergabe des wertes -> siehe http://de3.php.net/references.return*/
                            $host "***";
                            $user "***";
                            $pwd "***";
                            $db "***";
                            $connect mysql_connect($host$user$pwd) or die("Keine Verbindung zum Datenbankserver!");
                            $select_db mysql_select_db($db) or die("Konnte die Datenbank $db nicht auswählen!"); 
                            und in deinem eigentlichen script
                            PHP-Code:
                            include (...);
                            verbindungzurdatenbank ($connect);
                            echo 
                            $connect// zum testen
                            ... 
                            Zuletzt geändert von jochenj; 09.08.2004, 12:38.

                            Kommentar


                            • #15
                              Dein Problem liegt darin, dass Du im gegensatz zu oben, ganz unten einen $connect "Link" drin hast,
                              welcher offensichtlich nicht richtig als "Link" in der mysql_query() für richtig hält.

                              Grund könnte evtl der sein:


                              mach das doch mal so:

                              PHP-Code:
                              <?php 

                              $DB_Host 
                              "";
                              $DB_Name "";
                              $DB_User "";
                              $DB_Pass "";

                                 
                              $connect mysql_connect($DB_Host$DB_User$DB_Pass  ) or die(mysql_error());
                                   
                              mysql_select_db($DB_Name,$connect) or die(mysql_error("DB:Error_Connectet_failed"));

                              ?>

                              Wenn Du im übrigen nur mit einer MySQL-Datenbank arbeitest, kannst Du in mysql_query() die variable $connect
                              weglassen.

                              Mach das dann so:


                              PHP-Code:

                              <?php
                              }else{
                              $sql '
                                UPDATE 
                                  spiele 
                                SET 
                                  heimtore = '
                              .(int)$_POST['heimtore'].', 
                                  gasttore = '
                              .(int)$_POST['gasttore'].'
                                WHERE 
                                  id = '
                              .(int)$_POST['id'].'
                              '
                              ;


                              echo 
                              $sql;

                                  echo 
                              "<table align=center><tr><td>
                                      <a href=\"admin-ergebnisse.php\" onMouseOver=\"window.status=' ';return true;\">
                                              Zur&uuml;ck zur Tabelle
                                              </a></td></tr></table>"
                              ;

                              mysql_query($sql) or die (mysql_error());
                              }
                              ?>
                              Zuletzt geändert von xManUx; 09.08.2004, 14:18.

                              Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                              sondern mit den Augen das Manual zu lesen.

                              Kommentar

                              Lädt...
                              X