1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

PHP und SQL

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von Hausmeister76, 11.11.05.

  1. Hausmeister76

    Hausmeister76 Adams Parmäne

    Dabei seit:
    17.08.04
    Beiträge:
    1.300
    Heyho Jungs....

    Ich brauch mal fix ein tritt gegens Schienbein.... ich ärgere mich hier mit meiner Datenbank und einem PHP Script herum....

    Ich veruche ein paar Daten aus einer SQL Datenbank mithilfe von PHP auf einer Website anzuzeigen, es treten aber Fehler auf, mit denen ich "noch" ;) nichts anfangen kann....

    Code:
    <?php
    
    $db_name="Datenbank";
    $db_server="localhost";
    $db=mysql_connect($db_server,"","");
      $db_select=mysql_select_db($db_name);
      $result=mysql_query("SELECT * FROM Tabelle"); 
      for($x=0;$x<mysql_num_rows($result);$x++) { 
        $str_1 = mysql_result($result,$x,"Tabelle.Name"); 
        echo "id: $str_1 <br>"; 
        $str_2 = mysql_result($result,$x,1); 
        echo "gruppe: $str_2 <br><br>"; 
      }
    ?>
    folgender Fehler tritt dabei auf:

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /Library/WebServer/Documents/test2.php on line 8

    Wenn ich nun das mysql_num_rows() durch eine Zahl ersetze zum Bsp.: 3 dann kommt folgende Fehlermeldung:

    Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /Library/WebServer/Documents/test2.php on line 9
    id:

    Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /Library/WebServer/Documents/test2.php on line 11
    gruppe: ........


    wo liegt der Fehler?

    thx....

    so long....
     
  2. Toddy

    Toddy Wohlschmecker aus Vierlanden

    Dabei seit:
    10.05.04
    Beiträge:
    240
    Was gibt denn ein "var_dump($db)" aus?
     
  3. michis0806

    michis0806 Adams Apfel

    Dabei seit:
    27.02.04
    Beiträge:
    511
    Also irgendwie kann ich mit deiner Methode nix anfangen... Ich würd's so machen:

     
  4. master_p

    master_p Gast

    Also wenn Deine Datenbankverbindung wirklich korrekt ist, dann sollte er auch keinen Fehler ausgeben. Ansonsten mach es mal so (und finde es auch deutlich übersichtlicher und Objektorientierte Programmierung finde ich [zumindest unter PHP] völlig sch...):

    Wenn Du das "print mysql_error();" wieder aktivierst, dann wird er Dir die MySQL-Fehlermeldung auswerfen. Ansonsten mal mit phpMyAdmin den Query ausführen und schauen, ob der überhaupt korrekt ist.
     
  5. Hausmeister76

    Hausmeister76 Adams Parmäne

    Dabei seit:
    17.08.04
    Beiträge:
    1.300
    also besten Dank für eure Mühen.....

    Die Version von mischis0806 funktioniert tadellos....

    deine master_p bringt einen Fehler bei print "Dies ist eine $row['feld'].";
    und zwar:

    parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' .....

    aber warum geht meine "Version" nicht? komisch, komisch...

    so long....
     
  6. MACRASSI

    MACRASSI Gelbe Schleswiger Reinette

    Dabei seit:
    21.11.04
    Beiträge:
    1.754
    Also das das hier einen Fehler bringt ist ja klar:
    print "Dies ist eine $row['feld'].";
    denn wenn schon sollte es:

    print "Dies ist eine".$row['feld'];

    heißen.
    Gruß Rasmus
     
  7. Squart

    Squart Pomme Etrangle

    Dabei seit:
    29.01.04
    Beiträge:
    910
    Hm, da bin ich mir nicht sicher. Bei normalen Variablen (ohne einen String als Zugriff auf das Array) geht das auch. A'la print("Sie sind Besucher Nr. $nummer");

    Ist zwar nicht schön, aber PHP finde ich auch so nicht schön :innocent:
     
  8. Toddy

    Toddy Wohlschmecker aus Vierlanden

    Dabei seit:
    10.05.04
    Beiträge:
    240
    Bei einem Array würde es so nicht funktionieren, entweder das Array außerhalb des Strings angeben, oder in geschweifte Klammern.
    (print "Dies ist eine {$row['feld']}.")
     
  9. mullzk

    mullzk Linsenhofener Sämling

    Dabei seit:
    04.01.04
    Beiträge:
    2.529
    bei einem assoziativen array funktioniert das parsing nicht, hingegen sind nummerierte arrays auch ohne geschweifte klammer möglich: echo "Dies ist eine $row[0]";
     
  10. Hausmeister76

    Hausmeister76 Adams Parmäne

    Dabei seit:
    17.08.04
    Beiträge:
    1.300
    hi jungs.... hab nun leider an einer anderen Stelle ein Problem und zwar:

    Auf einer Website soll der Benutzer in ein Formularfeld eine Kommazahl eingeben und die alte Kommazahl soll dann einfach in der Datenbank an einer bestimmten Stelle durch diese neue aktualisiert werden.

    Ich hänge scheinbar an der SQL Anfrage:

    Code:
    mysql_query("UPDATE $Table SET Preis='".$_REQUEST['preis1']."' 
    WHERE Nummer=1",$DatabasePointer);
    denke da an die WHERE Klausel nur hab ich keine Ahnung, wie ich es ändern müsste, damit es funktioniert.

    $Table ist die Tabelle in der Datenbank, der Preis wird hier durch den Aufruf der update.php (wo unter anderem dieser Quellcode drin steht) durch Klick auf ein Button übergeben. Nur wird dabei der Preis in der Datenbank nicht durch den neuen geändert.

    Ich gehe doch recht in der Annahme, das ich in der update.php auf die Daten aus dem Formularfeld durch $_REQUEST darauf zugreifen kann.... diese update.php wird in der Datei login.php durch

    Code:
    <form action="update.php" method="post">
        <tr>
            <td align="center"><input maxlength="20" 
              name="preis1" size="15" type="text"></td>
        </tr>
    aufgerufen, oder?

    Was mache ich falsch?

    thx schonmal

    so long...
     
  11. Hausmeister76

    Hausmeister76 Adams Parmäne

    Dabei seit:
    17.08.04
    Beiträge:
    1.300
    *hochschieb*
     
  12. Hausmeister76

    Hausmeister76 Adams Parmäne

    Dabei seit:
    17.08.04
    Beiträge:
    1.300
    oh man.... manchmal ist das ganze doch einfacher als gedacht....

    da ich das ganze unter opera immer ausprobiert habe und die Seite dadurch immer im Cache hatte, holte er die ganze Zeit die Seite aus dem Cache und da stand halt immer der alte Wert drin. nun habe ich mal ein neues Fenster geöffnet und die Adresse nochmal per Hand eingegeben und siehe da, es stand der neue Wert drin.... also manchmal könnt ich....

    Also alles funzt und ist ok...

    so long...
     

Diese Seite empfehlen