php abfrage nur begrenzt möglich

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

  • php abfrage nur begrenzt möglich

    hallo

    ich hab eine mysql datenbank mit userdaten und möchte diese über php auslesen und ändern können. das klappt auch, allerdings nur auf sieben felder begrenzt. ich finde den fehler nirgens....
    heisst, sobald ich eine weitere abfrage wie telefax oder ähnliches noch hinzufüge, kommt die fehlermeldung dass der datensatz nicht geändert wurde.

    hier mal meine drei php's.

    abfrage:
    PHP-Code:
    for ($i=0$i<$num$i++) 

    $an mysql_result($res$i"anrede"); 
    $nn mysql_result($res$i"name"); 
    $fi mysql_result($res$i"firma"); 
    $vn mysql_result($res$i"vorname"); 
    $ab mysql_result($res$i"abteilung"); 
    $te mysql_result($res$i"telefon"); 
    $pn mysql_result($res$i"personalnummer"); 
    ausgabe:
    PHP-Code:
    $altan mysql_result($res0"anrede"); 
    $altnn mysql_result($res0"name"); 
    $altvn mysql_result($res0"vorname"); 
    $altfi mysql_result($res0"firma"); 
    $altab mysql_result($res0"abteilung"); 
    $altte mysql_result($res0"telefon"); 
    update:
    PHP-Code:
    $sqlab "update personen set anrede = '$neuan',"
    $sqlab .= "name = '$neunn',"
    $sqlab .= "vorname = '$neuvn',"
    $sqlab .= "firma = '$neufi',"
    $sqlab .= "personalnummer = '$neupn',"
    $sqlab .= "abteilung = '$neuab',"
    $sqlab .= "telefon = '$neute'"
    $sqlab .= "where personalnummer = $oripn"
    wer weiss wo der fehler steckt ? vielen dank.... dirk
    EDIT:
    php-Tag sponsored by asp2php.
    Zuletzt geändert von asp2php; 04.03.2005, 23:12.

  • #2
    lesen!

    und dann ....

    mysql_query()
    mysql_error()
    mysql_escape_string()
    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 |


    Kommentar


    • #3
      ok Abraxax,

      danke. würde natürlich gerne nur den fehler hier einstellen, wenn ich wüsste wo er ist. leider finde ich ihn nicht und die ausgabe sagt mir nur dass die daten nicht geändert wurden so wie er es auch machen soll. aber warum weiss ich immer noch nicht. das sript hab ich halt so von einer seite und wie schon gesagt, bis zu 7 sachen lassen sich ja auch ändern.

      und da ich anfänger bin bringt mir

      mysql_query()
      mysql_error()
      mysql_escape_string()

      auch nichts.

      danke trotzdem.. dirk

      Kommentar


      • #4
        Original geschrieben von dirty_dirk
        und da ich anfänger bin bringt mir [...] auch nichts.
        wenn du dich damit rausreden willst, bitte.
        dann kann und will dir hier aber vermutlich niemand weiterhelfen.

        der verlinkte artikel beschreibt, wie du mysql_error() anwendest.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          danke wahsaga

          das hat damit gar nichts zu tun. ich hab ordentlich gefragt, hab ordentlich auf die antwort eben gepostet und hab nochmals erklärt dass ich den fehler nicht finde obwohl ich schon mehreres versucht habe. wenn ihr, bevor ihr die leute dann mit solchen kommentaren wie du nun schreibst "ob ich mich rausreden will" ansprichst, wäre eine einfache ausage von leuten die sich damit auskennen doch eigentlich viel mehr wert. doch das ist warscheinlich zu viel verlangt.

          tu mir nen gefallen, lösch meinen beitrag und lass es gut sein

          Kommentar


          • #6
            @dirty_dirk,

            wo hast du Schwierigkeit die genannten Begriffe anzuwenden?
            Bsp.
            PHP-Code:
            $sql "...";
            $res mysql_query($sql) or die ('sql: '.$sql.'<br />error: '.mysql_error()); 
            wenn ein Fehler da ist, bekommst du auch Meldung. Wenn du mit der Meldung nichts anfangen kannst, dann poste sie hierein. Versuche aber vorher die Meldung zu deuten und das Problem damit zu lösen.

            Kommentar


            • #7
              @dirty_dirk

              Das Problem ist, dass Du etwas zu wenige Informationen lieferst.

              zB. Wie sieht der Select aus, wie machst Du den Update, wie lautet die Fehlermeldung...

              asp2php hat Dir einen Ansatz gezeigt mit dem Du Fehler eingrenzen kannst btw. Fehler "sichtbar" machen kannst.

              Wenn Du mit diesen Funktionen nichts anfangen kannst findest Du eventuell mal hier Informationen drüber.

              Das einzige was mir im Moment auffällt, muss aber kein Fehler sein, ist das hier:
              PHP-Code:
              $sqlab .= "where personalnummer = $oripn"
              Hier hast Du die Hostvariable nicht in '' gesetzt...

              Kommentar


              • #8
                @asp2php

                du, erst mal. danke.... echt. würd sonst nicht fragen wenn ich nicht schon seit lange dran sitzen würde. aber trotzdem. kann euch auch verstehen wenn jeder kommt und am liebsten was gebastelt haben will.

                ich hab jetzt mal dieses in mein "update" eingegeben da der rest ja bis dahin eigentlich funktioniert.
                PHP-Code:
                <?php 

                   $db 
                mysql_connect('');

                   
                $res mysql_query($sqlab) or die ('sqlab: '.$sqlab.'<br />error: '.mysql_error());

                   
                $sqlab "update personen set anrede = '$neuan',";
                   
                $sqlab .= "name = '$neunn',";
                   
                $sqlab .= "vorname = '$neuvn',";
                   
                $sqlab .= "firma = '$neufi',";
                   
                $sqlab .= "personalnummer = '$neupn',";
                   
                $sqlab .= "abteilung = '$neuab',";
                   
                $sqlab .= "telefon = '$neute',";
                   
                $sqlab .= "telefax = '$neutf',";
                   
                $sqlab .= "where personalnummer = $oripn";
                ?>
                wenn ich das jetzt absende kommt bei der übergabe der fehler:

                sqlab:
                error: Query was empty

                dabei funktioniert wie gesagt vorher alles. nur das einfügen einer neuen , in meinem fall siebten spalte macht schwierigkeiten.

                danke dir....
                EDIT:
                php-Tag sponsored by asp2php.
                Zuletzt geändert von asp2php; 04.03.2005, 23:10.

                Kommentar


                • #9
                  Hmmm, mal ne dumme Frage, in welcher Reihenfolge wird das ausgeführt?

                  Kommentar


                  • #10
                    @Godfrey

                    ich habe drei php's, wenn du das meinst.

                    die erste die mir die db anzeigt un mich auswählen lässt.
                    die zweite die mir die auswahl aus der db anzeigt
                    die dritte. die mich fertig macht. also den fehler rausgibt.

                    den code aller drei varianten hab ich oben gepostet.
                    habe auch deinen rat bei

                    $sqlab .= "where personalnummer = $oripn" schon versucht, aber immer noch nichts.

                    wie gesagt, wenn ich sechs felder abfrage, kein problem... danach. nix mehr...

                    Kommentar


                    • #11
                      Original geschrieben von dirty_dirk

                      wenn ich das jetzt absende kommt bei der übergabe der fehler:

                      sqlab:
                      error: Query was empty
                      Klar, weil als du dies aufrufst:
                      PHP-Code:
                       $res mysql_query($sqlab) or die ('sqlab: '.$sqlab.'<br />error: '.mysql_error()); 
                      ist $sqlab noch garnicht definiert. PHP ist eine Scriptsprache, also Interpreter, d.h. die Abarbeitung geschieht Zeile für Zeile von Anfang bis zum Ende der Datei. Schiebe also die Zeile unter den Block:
                      PHP-Code:
                       $sqlab "update personen set anrede = '$neuan',";
                      $sqlab .= "name = '$neunn',";
                      $sqlab .= "vorname = '$neuvn',";
                      $sqlab .= "firma = '$neufi',";
                      $sqlab .= "personalnummer = '$neupn',";
                      $sqlab .= "abteilung = '$neuab',";
                      $sqlab .= "telefon = '$neute',";
                      $sqlab .= "telefax = '$neutf',";
                      $sqlab .= "where personalnummer = $oripn"
                      dann solltes funz.

                      BTW: bitte PHP-Tag des Forum für Code verwenden, damit man durch Farbhervorhebung Fehler besser erkennen kann. Danke.

                      Kommentar


                      • #12
                        hy

                        ok, sorry wegen des codes. hoffe den beitrag nu richtig einzustellen. jetzt kommt folgender fehler

                        $db = mysql_connect(');

                        $sqlab = "update personen set anrede = '$neuan',";
                        $sqlab .= "name = '$neunn',";
                        $sqlab .= "vorname = '$neuvn',";
                        $sqlab .= "firma = '$neufi',";
                        $sqlab .= "personalnummer = '$neupn',";
                        $sqlab .= "abteilung = '$neuab',";
                        $sqlab .= "telefon = '$neute',";
                        $sqlab .= "telefax = '$neutf',";
                        $sqlab .= "where personalnummer = $oripn";

                        $res = mysql_query($sqlab) or die ('sqlab: '.$sqlab.'<br />error: '.mysql_error());

                        // mysql_db_query("", $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);[PHP]


                        sqlab: update personen set anrede = 'Herr',name = 'Mark',vorname = 'Ralf',firma = 'Zettel',personalnummer = '6',abteilung = '2',telefon = '0228.9548323',telefax = '025',where personalnummer = 3
                        error: You have an error in your SQL syntax near 'where personalnummer = 3' at line 1

                        hmmmmm

                        Kommentar


                        • #13
                          Hmmm, könnte an dem zu vielen Komma davor liegen. Und eventuell sollte vor der Wherer-Clause noch ein Blank sein.

                          Ach ja, und wegen den PHP-Tags, wenn Du beim erstellen oben mal beim Editor schaust, da gibt es Buttons, einen mit PHP, verwende den mal bitte für Code.

                          Kommentar


                          • #14
                            hy

                            hab ich veruscht mit dem php button. nun noch mal. bin ich denn, also...

                            PHP-Code:

                            $db 
                            mysql_connect('');

                            $sqlab "update personen set anrede = '$neuan',";
                            $sqlab .= "name = '$neunn',";
                            $sqlab .= "vorname = '$neuvn',";
                            $sqlab .= "firma = '$neufi',";
                            $sqlab .= "personalnummer = '$neupn',";
                            $sqlab .= "abteilung = '$neuab',";
                            $sqlab .= "telefon = '$neute',";
                            $sqlab .= "telefax = '$neutf',";
                            $sqlab .= "where personalnummer = $oripn";

                            $res mysql_query($sqlab) or die ('sqlab: '.$sqlab.'<br />error: '.mysql_error());

                            mysql_db_query("DB68518"$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); 
                            Zuletzt geändert von wahsaga; 04.03.2005, 23:34.

                            Kommentar


                            • #15
                              Original geschrieben von dirty_dirk
                              ...telefax = '025',where personalnummer = 3
                              error: You have an error in your SQL syntax near 'where personalnummer = 3' at line 1
                              Du siehst hier genau, dass zwischen dem letzten Feld und der Where-Clause ein Komma steht. Das ist es was MYSQL anmotzt. Hier sollte statt dem , ein Blank sein.

                              Hmmm, genauer kann ichs wohl nicht mehr erklären...

                              Was das PHP-Tag betrifft, verwende den Button, gib irgendwas ein und dann hast hier im Fenster die entsprechenden Tags stehen. Dazwischen kannst dann Deinen Code einfügen. Und vor dem Hochstellen kannst mir dem Button Vorschau noch schauen obs OK ist.

                              Kommentar

                              Lädt...
                              X