PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   mysql_num_rows() problem (http://www.selfphp.de/forum/showthread.php?t=12342)

a-erat 27.01.2006 23:24:15

mysql_num_rows() problem
 
Hi hatte bissel zeit und wollte eine kleine Page für mich selber machen. Aber nun komme ich net weiter und hoffe ihr könnt mir helfen.
Es wird durch ein dropdown menü werte übergeben und dieser wert werden unter $bekommen gespeichert. In diesem Menü kann man auswählen wie alles sortiert werden soll.
Und nun sollte das alles ausgeben werden, aber dies passiert leider nicht. Die spaltennamen werden ausgegeben, aber bei der while schleife wird ein fehler ausgegen. Kann mir vielleicht einer helfen?

Code:

if($_REQUEST['Send']){
  $bekommen = $_GET['sort'];

      $ergebnis = mysql_query("SELECT * FORM tab ORDER BY ".$bekommen);
      $x = 0;
      print"<table>";
      print "<tr>
            <th>Spalte1</th>
            <th>Spalte2</th>
            <th>Spalte3</th>
            <th>Spalte4</th>
            <th>Spalte5</th>
            <th>Spalte6</th>
            <th>Spalte7</th>
            <th>Spalte8</th>
            </tr>";
      while ($x<mysql_numrows($ergebnis)){
        $Vab1 = mysql_result($ergebnis,$x, 'Spalte1');
        $Vab2 = mysql_result($ergebnis,$x, 'Spalte2');
        $Vab3 = mysql_result($ergebnis,$x, 'Spalte3');
        $Vab4 = mysql_result($ergebnis,$x, 'Spalte4');
        $Vab5 = mysql_result($ergebnis,$x, 'Spalte5');
        $Vab6 = mysql_result($ergebnis,$x, 'Spalte6');
        $Vab7 = mysql_result($ergebnis,$x, 'Spalte6');
        $Vab8 = mysql_result($ergebnis,$x, 'Spalte6');
        $Vab9 = mysql_result($ergebnis,$x, 'Spalte6');
        $Vab10 = mysql_result($ergebnis,$x, 'Spalte10');
        $Vab11 = mysql_result($ergebnis,$x, 'Spalte11');
        print "<tr>";
        print "<td><h2>$Vab1</h2></td>
            <td><h2>$Vab2</h2></td>
            <td><h2>$Vab3</h2></td>
            <td><h2>$Vab4</h2></td>
            <td><h2>$Vab5</h2></h2>
            <td><h2>$Vab6, $Vab7, $Vab8, $Vab9</h2>
            <td><h2>$Vab10</h2></h2>
            <td><h2>$Vab11</h2></h2>";
      print "</tr>";
      $x++;
      }
      print"</table>";
      mysql_close();

  }

Die fehlermeldung lauetet:
Code:

Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in
C:\****\****.php on line 36

hab aber in der Zeile auch mysql_num_rows() benutzt kommt die gleiche fehler meldung.

hoffe mal das miir jemand helfen kann und danke im vorraus.

mfg
a-erat

meikel (†) 28.01.2006 00:21:01

AW: mysql_num_rows() problem
 
28.4. Supplied argument is not a valid MySQL result...
http://www.php-faq.de/q/q-fehler-mysql-result.html

a-erat 28.01.2006 01:16:59

AW: mysql_num_rows() problem
 
danke den fehler hab ich nun gefunden thx

feuervogel 28.01.2006 01:37:45

AW: mysql_num_rows() problem
 
Zitat:

Zitat von a-erat
danke den fehler hab ich nun gefunden thx

ich ahne es zwar, aber vielleicht teilst du ihn uns ja mit, falls jemand den gleichen fehler hat, muss er nicht auch noch mal das gleiche fragen.

a-erat 28.01.2006 14:01:05

AW: mysql_num_rows() problem
 
kein problem mach ich aber ich schäme mich über den fehler. die select anweisung war falsch deswegen konnte nicht angegeben werden wieviele datensätze drin waren.

form statt from geschrieben :(

a-erat 29.01.2006 21:56:40

hab noch eine frage :(
 
HI zusammen,
hab jetzt ein weiteres Problem hoffentlich könnt ihr mir wieder helfen.

Und zwar wir den User gefragt wieviele eintrage er in die DB machen will, dem entsprechend viele zeilen werden generiert.
Nach dem der User die daten eingetragen hat soll halt alles an die db übergeben werden aber das klappt leider nicht.
Die Daten werden in arrays gespeichert siehe Code.
Code:

if($_REQUEST['Send']){
        $menge = $HTTP_POST_VARS["anzahl"];
        $x = 0;
        echo "<br><br><br>";
        print "<table>";
        print "<form action=\"test.php\" method=\"POST\">";
        print "<tr>
                        <th>Spalte1</th>
                        <th>Spalte2</th>
                        <th>Spalte3</th>
                  </tr>";
        while ($x < $menge){
        print "<tr>
                        <td><input name=\"VAR1[$x]\" type=\"text\" size=\"8\" maxlength=\"20\"></td>
                        <td><input name=\"VAR2[$x]\" type=\"text\" size=\"5\" maxlength=\"20\"></td>
                        <td><input name=\"VAR3[$x]\" type=\"text\" size=\"4\" maxlength=\"20\"></td>
                  </tr>";
                $x++;
        }
        print "<tr><td><input name=\"Send\" type=\"submit\" value=\"Weiter\"></td></tr>";
        print "</table>";
}

Danach soll mit hilfe einer anderen php datei die daten nacheinander auf die db gespeichert werden um die daten auszulesen wollte ich die arrays mit hilfe einer for-schleife auslesen aber da hackt es ich weiss nicht wie ich die arrays auslesen kann.
Code:

                      $lenght = $HTTP_POST_VARS["VAR1[]"];

                $men = count("$lenght");
                $y = 0;
                for ($y=0;$y < $men; $y++ ){
                        $VARB1 = $HTTP_POST_VARS["VAR1[$y]"];
                        $VARB2 = $HTTP_POST_VARS["VAR2[$y]"];
                        $VARB3 = $HTTP_POST_VARS["VAR3[$y]"];
                       
                        $eintrag = "INSERT INTO Tab(Spalte1, Spalte2, Spalte3)
                        VALUES ('$VARB1', '$VARB2', '$VARB3')";
                }
                $eintragen = mysql_query($eintrag);

                $sql = "select * from Filme";
                $ergebnis = @mysql_query("$sql");

                $Menge = 0;
                $anzahl = mysql_numrows($ergebnis);
                print "<table>";
                print "<tr>
                                <th>Spalte1</th>
                                <th>Spalte2</th>
                                <th>Spalte3</th>
                          </tr>";

                        while ($Menge < $anzahl){
                                        $VARI1= mysql_result($ergebnis,$Menge, 'VARB1');
                                        $VARI2 = mysql_result($ergebnis,$Menge, 'VARB2');
                                        $VARI3 = mysql_result($ergebnis,$Menge, 'VARB3');
                                        print "<tr>";
                                        print "        <td><p>$FName</p></td>
                                                        <td><p>$VARI1</p></td>
                                                        <td><p>$VARI2</p></td>
                                                        <td><p>$VARI3</p></td>";
                                        print "</tr>";
                                        $Menge++;
                        }
                        echo "</table>";

Es wird weder ein fehler angegeben oder ein eintrag in die db gemacht.

thx im vorraus

Opendix 29.01.2006 22:36:56

AW: hab noch eine frage :(
 
verwende statt $HTTP_POST_VARS[] einfach nur $_POST[]

a-erat 29.01.2006 23:14:08

AW: mysql_num_rows() problem
 
@ Opendix danke für die schnelle Antwort aber es hat leider nicht geklappt.

Opendix 30.01.2006 15:56:47

AW: mysql_num_rows() problem
 
kA ob man arrays so übergeben kann :S

aber ich würd die anzahl irgendwie anders übergeben, z.b. ein hidden feld mit der anzahl oder noch vieeel besser mit sessions...

ich weis nicht, was count("$length") zurückliefert, aber du kannst dir mal sicher die "" da sparen und einfach nur count($length) machen!
ich nehm mal an, dass der einfach nicht in die for-schleife da rein geht...

und mach das mit dem "count" und dem "for" so:
PHP-Code:

for($i=0$i<count($length); $i++)
{
    
//...



R. Woitaschik 30.01.2006 16:32:24

AW: mysql_num_rows() problem
 
Hi a-erat,
versuche mal dies:
PHP-Code:

$VAR1 $_POST["VAR1"];
$VAR2 $_POST["VAR2"];
$VAR3 $_POST["VAR3"];
$count count($VAR1);
for (
$y 0$y $count$y++) {
  
$VARB1 $VAR1[$y];
  
$VARB2 $VAR2[$y];
  
$VARB3 $VAR3[$y];
  
$eintrag "INSERT INTO Tab(Spalte1, Spalte2, Spalte3) VALUES ('$VARB1', '$VARB2', '$VARB3')";
  
$eintragen mysql_query($eintrag);
  if(!
$eintragen) die('SQL-FEHLER');


Du kannst natürlich auch $HTTP_POST_VARS statt $_POST nehmen. Deine Anweisung ist fehlerhaft, da in $HTTP_POST_VARS keine Einträge mit dem Key z.B. $HTTP_POST_VARS["VAR1[1]"] existieren. Es gibt hier nur ein Eintrag $HTTP_POST_VARS["VAR1"], der wiederrum ein Array ist. Du kannst also auch $HTTP_POST_VARS["VAR1"][$y] schreiben.
Um diese Probleme zu debugen empfehle ich dir mittels der print_r() - Funktion den Inhalt von $HTTP_POST_VARS auszugebe.

Viele Grüße
Richard


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:49:10 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.