[SQL allgemein] update einer db

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

  • [SQL allgemein] update einer db

    hi!
    ich bitte um eure hilfe bezüglich eines updates einer selbst erstellten mysql datenbank. diese umfasst 17 tables. das problem dem ich seit ca 2 wochen trotz intensiver internetrecherche nicht auf die spur komme ist, dass ich auf die tables zugreifen kann. es ist mir möglich insert sowie delete befehle auf der db auszuführen, aber beim updaten bekomme ich immer eine fehlermeldung! beim updaten benutze ich 3 php scripts. das erste legt tables an, das zweite zeigt den gesamtinhalt des tables und einen radiobutton zur auswahl des zu ändernden eintrages. nach auswählen eines eintrages erscheint ein script mit den benötigten eingabefeldern. aber wenn ich dann einen eintrag ändere, übergeht das 3. phpscript die if-anweisung und gibt else aus. bin schon am verzweifeln und bitte euch dringend um hilfe!!!
    das erstaunliche ist , dass genau diese 3 php abfragescriptsauf einer schon bestehenden db funzen - aber eben nur auf dieser einen!

    vielen dank im voraus
    mfg quidnovi
    Zuletzt geändert von quidnovi; 24.10.2003, 23:18.

  • #2
    1. verstehe ich nich, wie dein 1. script tables anlegt, die du dann editieren willst. ... naja, möglich ist ja vieles.

    2. für alles andere solltest du schon mal sagen, was in if .. else steht und woher der vergleichswert in der if-bedingung kommt.

    Kommentar


    • #3
      das 1. script (legt HTML-Tables an-vergessen anzumerken):
      $res = mysql_db_query("stot", "select * from angebote order by angeboteid");
      //Abfrage der Datensatzmenge
      $num = mysql_num_rows($res);
      //Tabellenbeginn
      echo "<table border>";
      //Ueberschrift
      echo "<tr> <td>Auswahl</td>";
      echo "<td>AngeboteID</td>";
      echo "<td>AngeboteBestelltext</td>";
      echo "<td>AngebotePartnerID</td>";
      echo "<td>AngeboteDatum</td> </tr>";
      //Ausgabe um jeweils 1 erhoehen und Angabe der Datenbankeintraege
      for ($i = 0; $i < $num; $i ++)
      {
      $id = mysql_result($res, $i, "angeboteid");
      $be = mysql_result($res, $i, "angebotebestelltext");
      $pa = mysql_result($res, $i, "angebotepartnerid");
      $da = mysql_result($res, $i, "angebotedatum");
      //Tabellenzeile mit -zellen
      echo "<tr> <td><input type='radio' name='auswahl' value = '$id'></td>";
      echo "<td>$id</td>";
      echo "<td>$be</td>";
      echo "<td>$pa</td>";
      echo "<td>$da</td> </tr>";
      }
      //Tabellenende
      echo "</table>";
      das 2. script sieht so aus:
      if ($auswahl)
      {
      //Oeffnen der Datenbank
      $db = mysql_connect();
      //Auswahl der Datenbanktabelle und Angabe der Anwendung
      $abfr = "select * from angebote";
      $abfr .= " where angeboteid = $auswahl";
      //Anfrage an die augewaehlte Datenbank und Angabe der in $abfr ausgewaehlten Anwendung
      $res = mysql_db_query("stot", $abfr);
      //Angabe der bestehenden Datenbankeintraege
      $altbe = mysql_result($res, 0, "angebotebestelltext");
      $altpa = mysql_result($res, 0, "angebotepartnerid");
      $altda = mysql_result($res, 0, "angebotedatum");
      echo "F&uuml;hren Sie die &Auml;nderungen durch und dr&uuml;cken Sie den Button";
      echo " '&Auml;nderungen in Datenbank speichern'<p>";
      //Bestaetigung der Aenderung
      echo "<form action='angebote3.php' method='post'>";
      //Angabe der zu aendernden Datenbankeintraege
      echo "<input name='neuid' value='$auswahl'> AngeboteID<p>";
      echo "<input name='neube' value='$altbe'> AngeboteBestelltext<p>";
      echo "<input name='neupa' value='$altpa'> AngebotePartnerID<p>";
      echo "<input name='neuda' value='$altda'> AngeboteDatum<p>";
      echo "<input type='hidden' name='oriid' value='$auswahl'>";
      //Absendebutton
      echo "<input type='submit' value='&Auml;nderung in Datenbank speichern'><p>";
      echo "<input type='reset'><p>";
      echo "</form>";
      //Schliessen der Datenbank
      mysql_close($db);
      }
      else
      echo "Es wurde kein Datensatz ausgewaehlt";

      die if - anweisung (3. script):
      $db = mysql_connect();
      //Angabe der Tabelle und aktualisieren der ausgewaehlten
      Datenbanksaetze
      $abfr = "update angebote set angeboteid = '$neuid',";
      $abfr .= "angebotebestelltext = '$neube',";
      $abfr .= "angebotepartnerid = '$neupa',";
      $abfr .= "angebotedatum = '$neuda',";
      $abfr .= "where angeboteid = $oriid";
      //Anfrage an die ausgewaehlte Datenbank und Angabe der in $abfr ausgewaehlten Anwendungen
      mysql_db_query("stot", $abfr);
      //Abfrage der Datensatzmenge und der von der Aktion betroffenen(=affected)Datensaetze
      $num = mysql_affected_rows();
      if ($num > 0)
      echo "Der Datensatz wurde geaendert.<p>";
      else
      echo "Der Datensatz wurde <B>nicht</B> geaendert.<p>";
      hoffe du kannst damit etwas anfangen
      tschü
      Zuletzt geändert von quidnovi; 24.10.2003, 23:43.

      Kommentar


      • #4
        ich denke erstmal brauchst du ein formular, dass deine radio-buttons aufnimmt.

        und zum update-problem kann ich nur sagen, dass ich nicht weiss, ob deine if-abfrage mit mysql_db_query funktioniert. mit mysql_query würde sie es auf jeden fall, WENN wirklich etwas an einem eintrag GEÄNDERT werden würde. heisst natürlich, dass du dann die verbindung vorher aufbauen musst.
        EDIT:
        und hier kannst du auch nochmal schauen http://www.php-resource.de/manual.ph...mysql-db-query
        Zuletzt geändert von graf; 24.10.2003, 23:49.

        Kommentar


        • #5
          ich habe erst vor einigen minuten das 2. script dazugefügt, das die radio buttons aufnimmt.

          das problem das mich so beschäftigt kann ich leider nicht eingrenzen, darum weiß ich gar nicht wie ich es dir besser beschreiben könnte.

          trotzdem hab vielen dank für dein bemühen
          quidnovi

          Kommentar


          • #6
            ich kenne dein system nich, daher versuch mal in script 2
            statt
            if($auswahl)
            dies
            if($_POST["auswahl"])

            und genauso mit den POST-Vars in Script 3 verfahren.

            und das nächste mal kannst du auch die PHP-tags des Forums verwenden

            Kommentar


            • #7
              mein system: win2000pro
              Apache 2.0.47, MySQL 4.0.14, PHP 4.3.3 rc2 + PEAR, mod_php 4.3.3 rc2 ,
              PHPMyAdmin 2.5.2 rc1

              werde den tip probieren - danke

              Kommentar

              Lädt...
              X