Fehler im Script:

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

  • Fehler im Script:

    Hallo Leute, ich hab ein kleines Problem mit meinem Script:
    Es soll eigetnlich ermöglichen, dass Änderungen an Tabellen in meiner Datenbank durchgeführt werden können.

    Code Teil1:
    Zuerst kann man die bereits eingetragenen Daten auslesen und mittels in einem Radiobutten, jenen Inhalt markieren, den man ändern möchte.

    <html>
    <body>
    Wählen Sie aus, welcher Datensatz geändert werden soll:<p>
    <form action = "uf16b.php" method = "post">
    <?php

    // deklarieren der Variablen: $host, $username, $password, für die MYSQL- Datenbank Herstellung

    $host = localhost; //Host, localhost ist Standard
    $username = +++++++++; //Username
    $password = ++++++++++; //Passwort

    $db = mysql_connect($host, $username, $password); //baut die Verbindung auf, mit VAriablen von vorher
    $res = mysql_db_query("bodybuilding-online_attest",
    "select * from content");
    $num = mysql_num_rows($res);

    // Tabellenbeginn
    echo "<table border>";

    // Überschrift
    echo "<tr> <td>Auswahl</td> <td>Content</td>";
    echo "<td>Datum</td>";


    for ($i=0; $i<$num; $i++)
    {
    $nn = mysql_result($res, $i, "text");

    $pn = mysql_result($res, $i, "datum");


    // Tabellenzeile mit -zellen
    echo "<tr> <td><input type='radio' name='auswahl'";
    echo " value='$pn'></td> <td>$nn</td> <td>$pn</td> <tr>";

    }

    // Tabellenende
    echo "</table>";

    mysql_close($db);
    ?>
    <p>
    <input type="submit" value="Datensatz anzeigen">
    </form>
    </body>
    </html>


    Dieser Teil funktioniert ja auch noch, aber beim Teil 2 stimmt was nicht.

    Code Teil2:

    Hier sollte man den geänderten Text eingeben können und dann an die Datenbank mit dem Code Teikl 3 an die Datenbank abschicken (diese enthält dann die UPDATE funktion) Ich habe jedoch folgenden Fehkler:

    Warning: mysql_result(): Unable to jump to row 0 on MySQL result index 3 in /home/virtual/site8/fst/var/www/html/cmslabor/uf16b.php on line 19

    Ich ahbe die Zeile 19 im Code rot und Fett markiert, bitte helft mir:

    <html>
    <body>
    <?php
    if ($auswahl)
    {
    // deklarieren der Variablen: $host, $username, $password, für die MYSQL- Datenbank Herstellung

    $host = localhost; //Host, localhost ist Standard
    $username = ++++++++; //Username
    $password = ++++++++ //Passwort

    $db = mysql_connect($host, $username, $password); //baut die Verbindung auf, mit VAriablen von vorher

    $sqlab = "select * from content where";
    $sqlab .= " datum = $auswahl";

    $res = mysql_db_query("bodybuilding-online_attest", $sqlab);

    [COLOR=darkred]$altnn = mysql_result($res, $0, "text");[/COLOR]


    echo "Führen Sie die Änderungen durch,<p>";
    echo "betätigen Sie anschließend den Button<p>";

    echo "<form action = 'uf16c.php' ";
    echo " method = 'post'>";

    echo "<input name='neunn' value='$altnn'>";
    echo " Nachname<p>";
    echo "<input name='neupn' value='$auswahl'>";
    echo " Personalnummer<p>";

    echo "<input type='hidden' name='oripn' ";
    echo " value='$auswahl'>";

    echo "<input type='submit' ";
    echo " value='Änderungen in DB speichern'><p>";
    echo "<input type='reset'>";
    echo "</form>";

    mysql_close($db);
    }

    else
    echo "Es wurde kein Datensatz ausgewählt<p>";
    ?>
    </body>
    </html>

    ICh weiß der Code ist sehr schlecht, bin aber ein Anfänger und hab das Skript von http://www.galileocomputing.de übernommen und auf meine Anforderungen angepasst!

    Ich bin für jede Antwort dankbar!!

    MfG
    ripper

  • #2
    $sqlab .= " datum = '$auswahl'";

    versuch das mal
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Leider

      Danke für den Tipp, aber jetzt erhalt ich den Fehler:

      Parse error: parse error, expecting `T_VARIABLE' or `'$'' in /home/virtual/site8/fst/var/www/html/cmslabor/uf16b.php on line 21

      er dürfte also die Schreibweise mit dem $ nicht akzeptieren!

      Trotzdem Danke
      Ripper

      Kommentar


      • #4
        hast du zwei ' geschrieben?

        eines vor $auswahl und eins direkt danach?

        der teil vonm ir erscheintmir nämlich durchaus korrekt


        wenn's partout nicht klappen will, dann poste mal den neuen code von dir, und schreibe bitte [php&#x5d; und [/php] außenrum
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Hab ich

          Ja hab ich, sieht jetzt so aus:

          $db = mysql_connect($host, $username, $password); //baut die Verbindung auf, mit VAriablen von vorher

          $sqlab = "select * from content where";
          $sqlab .= " datum = '$auswahl'";

          Aber ich erhalte leider trotzdem noch den Fehler, ich berstehe nicht was der Fehler überhaupt bedeuten soll can not jump.....
          ICh ahb doch mit $auswahl alles klar deklariert.

          Kann es damit zusammenhängen, das ich in der text- Tabelle bereits 2 Texte drinnen stehen habe und er nicht weiß, welchen ich von den beiden meine?
          Sollte eigtnlich schwachsinn sein, ich habe ja bereits oben festgelegt

          $sqlab = "select * from content where";
          $sqlab .= " datum = '$auswahl'";

          also muss er doch alle finden, oder??

          Ich werd da draus nicht schlau

          Kommentar


          • #6
            PHP-Code:
             $sqlab "select * from content where";
            $sqlab .= " datum = '$auswahl'";
            echo 
            $sqlab;
            $res mysql_db_query("bodybuilding-online_attest"$sqlab);
            echo 
            mysql_error(); 
            ausgabe?
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              hattest recht

              Hab den Fehler, dank dir gefunden, hatte so ein dummes $ einfach mittendrinn stehen lassen, vielen dank!!

              Ich hab aber leider noch ein kleines Problem, ich hab ja oben die ersten 2 Teile des Codes gepostet, der eine Auswahl der Daten, die geändert werden sollen ermöglicht und der auch im 2 Teil die Eingabefelder aufruft, wo man dann die Änderung durchführt.==> das funzt jetzt, dank dir

              Der 3. Teil jedoch sollte diese Änderung in die DB übertragen, tut er aber leider nicht, es kommt nachher immer die Meldung: Der Datensatz wurde nicht geändert, obohl ich eigentlich einen geändert habe, der der Code:

              <html>
              <body>
              <?php
              $db = mysql_connect();

              $sqlab = "update content set text = '$neunn',";
              $sqlab .= "datum = '$neupn',";
              $sqlab .= "where datum = $oripn";

              mysql_db_query("bodybuilding-online_attest", $sqlab);

              $num = mysql_affected_rows();
              if ($num>0)
              echo "Der Datensatz wurde geändert<p>";
              else
              echo "Der Datensatz wurde nicht geändert<p>";

              mysql_close($db);
              ?>
              Zurück zur <a href="uf16a.php">Auswahl</a>

              </body>
              </html>


              Bitte sag mit, ob du einen Fehler siehst

              BIG THX Ripper

              Kommentar


              • #8
                Re: hattest recht

                Bitte sag mit, ob du einen Fehler siehst
                dann poste mal den neuen code von dir, und schreibe bitte [php ] und [/php] außenrum
                Die Zeit hat ihre Kinder längst gefressen

                Kommentar


                • #9
                  Neuer Code

                  So das ist der neue Code, nach jedem Code Ende ist ein --------------
                  eingefügt, die ersdten beiden Codeabschnitte funzen, beim letzten schreibt er mir nicht in den Tabel und andauernd die MEldung:_ keine Datensätze geändert...

                  Code 1:

                  PHP-Code:

                  <html>
                  <body>
                  Wählen Sie aus, welcher Datensatz geändert werden soll:<p>
                  <form action = "uf16b.php" method = "post">
                  <?php

                  // deklarieren der Variablen: $host, $username, $password, für die MYSQL- Datenbank Herstellung

                  $host localhost//Host, localhost ist Standard
                  $username = ++++++++; //Username
                  $password = +++++++++; //Passwort

                     
                  $db mysql_connect($host$username$password); //baut die Verbindung auf, mit VAriablen von vorher
                     
                  $res mysql_db_query("bodybuilding-online_attest",
                        
                  "select * from content");
                     
                  $num mysql_num_rows($res);

                     
                  // Tabellenbeginn
                     
                  echo "<table border>";

                     
                  // Überschrift
                     
                  echo "<tr> <td>Auswahl</td> <td>Content</td>";
                     echo 
                  "<td>Datum</td>";
                  //name =conten, Personalnummer=datum

                     
                  for ($i=0$i<$num$i++)
                     {
                        
                  $nn mysql_result($res$i"text");

                        
                  $pn mysql_result($res$i"datum");


                        
                  // Tabellenzeile mit -zellen
                        
                  echo "<tr> <td><input type='radio' name='auswahl'";
                        echo 
                  " value='$pn'></td> <td>$nn</td> <td>$pn</td> <tr>";

                     }

                     
                  // Tabellenende
                     
                  echo "</table>";

                     
                  mysql_close($db);
                  ?>
                     <p>
                     <input type="submit" value="Datensatz anzeigen">
                  </form>
                  </body>
                  </html>

                  Dieser teil funzt und der nächste auch noch

                  Code 2:

                  PHP-Code:
                  <html>
                  <body>
                  <?php
                  if ($auswahl)
                  {
                  // deklarieren der Variablen: $host, $username, $password, für die MYSQL- Datenbank Herstellung

                  $host localhost//Host, localhost ist Standard
                  $username = +++++++++; //Username
                  $password = +++++++++; //Passwort

                     
                  $db mysql_connect($host$username$password); //baut die Verbindung auf, mit VAriablen von vorher


                     
                  $sqlab "select * from content where";
                     
                  $sqlab .= " datum = '$auswahl'";
                     echo 
                  $sqlab;
                     
                  $res mysql_db_query("bodybuilding-online_attest"$sqlab);
                     echo 
                  mysql_error();

                     
                  $altnn mysql_result($res0"text");


                     echo 
                  "Führen Sie die Änderungen durch,<p>";
                     echo 
                  "betätigen Sie anschließend den Button<p>";

                     echo 
                  "<form action = 'uf16c.php' ";
                     echo 
                  " method = 'post'>";

                     echo 
                  "<input name='neunn' value='$altnn'>";
                     echo 
                  " Content<p>";
                     echo 
                  "<input name='neupn' value='$auswahl'>";
                     echo 
                  " Datum<p>";

                     echo 
                  "<input type='hidden' name='oripn' ";
                     echo 
                  " value='$auswahl'>";

                     echo 
                  "<input type='submit' ";
                     echo 
                  " value='Änderungen in DB speichern'><p>";
                     echo 
                  "<input type='reset'>";
                     echo 
                  "</form>";

                     
                  mysql_close($db);
                  }

                  else
                     echo 
                  "Es wurde kein Datensatz ausgewählt<p>";
                  ?>
                  </body>
                  </html>

                  So und in dem Teil dürfte jetzt der Fehler sein, aber ich finde ihn leider nicht:

                  Code 3:

                  PHP-Code:
                  <html>
                  <body>
                  <?php
                     $db 
                  mysql_connect();

                     
                  $sqlab "update content set text = '$neunn',";
                     
                  $sqlab .= "datum = '$neupn',";
                     
                  $sqlab .= "where datum = $oripn";

                     
                  mysql_db_query("bodybuilding-online_attest"$sqlab);

                     
                  $num mysql_affected_rows();
                     if (
                  $num>0)
                        echo 
                  "Der Datensatz wurde geändert<p>";
                     else
                        echo 
                  "Der Datensatz wurde nicht geändert<p>";

                     
                  mysql_close($db);
                  ?>
                  Zurück zur <a href="uf16a.php">Auswahl</a>

                  </body>
                  </html>
                  Ich bin für jede Hilfestellung dankbar!

                  MfG
                  ripper

                  Kommentar


                  • #10
                    Re: Neuer Code

                    Ich bin für jede Hilfestellung dankbar!
                    überprüf die query! laß sie per echo ausgeben, teste sie in php_my_admin, etc.

                    achtung: formatier die query! du siehst den fehler sofort.
                    Die Zeit hat ihre Kinder längst gefressen

                    Kommentar


                    • #11
                      PHP-Code:
                      //dein Code
                      <html>
                      <body>
                      <?php
                         $db 
                      mysql_connect();

                         
                      $sqlab "update content set text = '$neunn',";
                         
                      $sqlab .= "datum = '$neupn',";
                         
                      $sqlab .= "where datum = $oripn";

                         
                      mysql_db_query("bodybuilding-online_attest"$sqlab);

                         
                      $num mysql_affected_rows();
                         if (
                      $num>0)
                            echo 
                      "Der Datensatz wurde geändert<p>";
                         else
                            echo 
                      "Der Datensatz wurde nicht geändert<p>";

                         
                      mysql_close($db);
                      ?>
                      Zurück zur <a href="uf16a.php">Auswahl</a>

                      </body>
                      </html>
                      mysql_db_query ist veraltet.
                      http://de.php.net/manual/de/function.mysql-db-query.php

                      $sqlab .= "datum = '$neupn',";
                      ein komma zu viel, dürfte also nichts ausführen.
                      mysql_error() wäre hier hilfreich bei der Fehlersuche

                      und warum schreibst du es nicht einfach so:
                      PHP-Code:
                      //Beispiel
                         
                      $sqlab mysql_query("update content 
                                     set 
                                     text = '"
                      .$neunn."', 
                                     datum = '"
                      .$neupn."'
                                     where datum = "
                      .$oripn."");
                                  
                      $erno mysql_affected_rows();
                                  
                          if(
                      $erno == 1){
                          echo 
                      'ja';
                          }else{
                          echo 
                      'nein';
                          } 
                      dann bleibt noch die frage wo kommt $neunn usw. her? Eventl. $_GET und $_POST dann verwenden und mysql_escape_string, siehe doku.
                      mfg
                      marc75

                      <Platz für anderes>

                      Kommentar

                      Lädt...
                      X