Problem mit mysql_num_rows

Hier könnt Ihr fragen zu Problemen mit Sql (MySql) in Verbindung mit PHP stellen. Es können fragen zu SQL Anweisungen und/oder PHP Mysql Funktionen gestellt werden.

Problem mit mysql_num_rows

Beitragvon JayJay1988 am Mo, 20:13:56 30.03.09

Tag auch,

habe folgendes problem, und zwar möchte ich meine news zusammen zählen lassen und bei 15 einträgen sollen dann die nächsten news auf seite zwei eingetragen werden ... hier mal der code:

  1.  
  2. ...
  3. $result = mysql_query("SELECT id FROM News WHERE aktiv = '1'");
  4. $menge = mysql_num_rows($result);
  5.  
  6. //Errechnen wieviele Seiten es geben wird
  7. $wieviel_seiten = $menge / $eintraege_pro_seite;
  8.  
  9. //Ausgabe der Seitenlinks:
  10. echo "<div align=\"center\">";
  11. echo "<b>Seite:</b> ";
  12.  
  13.  
  14. //Ausgabe der Links zu den Seiten
  15. for($a=0; $a < $wieviel_seiten; $a++)
  16.    {
  17.    $b = $a + 1;
  18.  
  19.    //Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben
  20.    if($seite == $b)
  21.       {
  22.       echo "  <b>$b</b> ";
  23.       }
  24.  
  25.    //Aus dieser Seite ist der User nicht, also einen Link ausgeben
  26.    else
  27.       {
  28.       echo "  <a href=\"?seite=$b\">$b</a> ";
  29.       }
  30. ...
  31.  


und hier die fehlermeldung:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/funnetwork/hosting/jejo2009/jejo/Scripts/news_anzeigen.php on line 115

Könnt ihr mir den grund sagen und wie ich es evt. beheben könnte?!

Danke schon mal. Gruß John
JayJay1988
Newbi
 
Beiträge: 6
Registriert: Mo, 20:07:57 30.03.09

Re: Problem mit mysql_num_rows

Beitragvon Marcel am Di, 10:25:26 31.03.09

Gibt es denn auch eine DB Verbindung?
MfG
Marcel
Marcel
Member
 
Beiträge: 542
Registriert: Di, 16:13:41 3.01.06

Re: Problem mit mysql_num_rows

Beitragvon JayJay1988 am Di, 12:07:30 31.03.09

Jopp eine db gibt es ...

Bild


  1. <?php
  2.  
  3. $seite = $_GET["seite"];  //Abfrage auf welcher Seite man ist
  4.  
  5. //Wenn man keine Seite angegeben hat, ist man automatisch auf Seite 1
  6. if(!isset($seite))
  7.    {
  8.    $seite = 1;
  9.    }
  10.  
  11. //Verbindung zu Datenbank aufbauen
  12.  
  13. $link = mysql_connect("*****","*****","*****") or die ("Keine Verbindung moeglich");
  14. mysql_select_db("jejo2009_01") or die ("Die Datenbank existiert nicht");
  15.  
  16.  
  17. //Einträge pro Seite: Hier 15 pro Seite
  18. $eintraege_pro_seite = 15;
  19.  
  20. //Ausrechen welche Spalte man zuerst ausgeben muss:
  21.  
  22. $start = $seite * $eintraege_pro_seite - $eintraege_pro_seite;
  23.  
  24.  
  25. //Tabelle Abfragen
  26. //Tabelle heißt hier einfach: Tabelle
  27. $abfrage = "SELECT * FROM News WHERE id < '10'";
  28.  
  29. $ergebnis = mysql_query($abfrage);
  30. while($row = mysql_fetch_object($ergebnis))
  31.     {
  32.     $inhalt = $row->inhalt;
  33.     $inhalt = htmlentities($inhalt);
  34.     $inhalt = nl2br($inhalt);
  35.     $datum = date("d.m.Y H:i", $row->datum);
  36.  
  37.     //Der Besucher hat keine E-Mail Adresse angegeben:
  38.     if($row->email == "")
  39.        {
  40.        $betreff = "<b>$row->betreff</b>";
  41.        }
  42.     else
  43.        {
  44.        //Der User hat eine Email Adresse angegeben:
  45.        $betreff = "<a href=\"mailto:$row->email\">$row->name</a>";
  46.        }
  47.  
  48.     echo "
  49.   <table align=\"center\" border=\"1\" cellspacing=\"0\" cellpadding=\"5\" bgcolor=\"#9E9E9E\" width=\"50%\">
  50.   <tr bgcolor=\"#ffffff\">
  51.   <td>
  52.   <b>$betreff</b> am $datum
  53.   </td>
  54.   </tr>
  55.   <tr bgcolor=\"#ffffff\">
  56.   <td>
  57.   $inhalt
  58.   </td>
  59.   </tr>
  60.   </table><br>  ";
  61.    
  62.    }
  63.  
JayJay1988
Newbi
 
Beiträge: 6
Registriert: Mo, 20:07:57 30.03.09

Re: Problem mit mysql_num_rows

Beitragvon Marcel am Mi, 08:36:12 1.04.09

Kommt der zuerst gepostete Code gleich unter dem Code den du jetzt gepostest hast?

PS: das du eine DB hast, davon bin ich ausgegangen, ich meinte ob dein Script auch eine Verbindung zur DB aufbaut.

Das ist das hier:
  1. $link = mysql_connect("*****","*****","*****") or die ("Keine Verbindung moeglich");
  2. mysql_select_db("jejo2009_01") or die ("Die Datenbank existiert nicht");



Ansonsten ist das schon ganz schöner Code wirrwarr, haste den selbst geschrieben oder von wo anders Kopiert?

Hier mal ein simples beispiel wie eine Blätterfunktion aussehen könnte:

  1.  
  2. <?PHP
  3.  
  4. if(empty($_GET['seite'])){
  5.    $seite = 0;
  6. }else{
  7.    $seite = $_GET["seite"];
  8. }
  9.  
  10. $max_news = 10;  
  11.    
  12. $link = mysql_connect("***","***","***") or die ("No DB Connect");
  13. mysql_select_db("Datenbank") or die ("No DB Select");
  14.  
  15. $sql = mysql_query("SELECT * FROM News
  16.             WHERE aktiv = 1
  17.             LIMIT ".(INT)$seite.",".$max_news."");
  18.  
  19. while($row = mysql_fetch_object($sql)){
  20. //deine Ausgabe
  21. }
  22.  
  23. $back = $seite - $max_news;
  24. if($back >= 0){
  25. $link_back = '<a href="datei.php?seite='.$back.'">zurück</a>';
  26. }else{$link_back = '';}
  27.  
  28. $sql2 = mysql_query("
  29.     SELECT
  30.         count(id)
  31.     FROM news WHERE aktiv = 1");
  32.  
  33. $all = mysql_result($sql2,0);
  34. $next = $seite + $max_news;
  35.  
  36.  
  37. if($all > $next){
  38. $link_next = '<a href="datei.php?seite='.$next.'">weiter</a>';
  39. }else{$link_next = '';}
  40.  
  41.  ?>
  42.  


Die Seitenfunktion um jede einzelne Seite direkt auswählen zu können musste dann noch selbst einfügen.
MfG
Marcel
Marcel
Member
 
Beiträge: 542
Registriert: Di, 16:13:41 3.01.06

Re: Problem mit mysql_num_rows

Beitragvon JayJay1988 am Mi, 13:39:11 1.04.09

Jopp der erste code kommt direkt unter den zweiten. Wieso? ist das falsch?

Ja da hast du recht ist ein wenig un durchsichtig :mrgreen: ehm also ich arbeite ja nicht allein an der hp sondern sind zu zweit aber ich denke schon das er den code von irgendwoanders her hat.

Mhhh ja dein code sind schon ein wenig einfacher aus, werd ihn dann mal probieren :wink:

gruß
JayJay1988
Newbi
 
Beiträge: 6
Registriert: Mo, 20:07:57 30.03.09

Re: Problem mit mysql_num_rows

Beitragvon JayJay1988 am Do, 13:26:00 2.04.09

So bekomme nun folgende fehlermeldungen (mit deinem code)

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/funnetwork/hosting/jejo2009/jejo/Scripts/test.php on line 19

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/funnetwork/hosting/jejo2009/jejo/Scripts/test.php on line 33


gruß
JayJay1988
Newbi
 
Beiträge: 6
Registriert: Mo, 20:07:57 30.03.09

Re: Problem mit mysql_num_rows

Beitragvon JayJay1988 am Do, 13:51:04 2.04.09

Ok alles klar hab es doch noch mit dem alten code hin bekommen

  1. $result = mysql_query("SELECT id FROM News WHERE aktiv = '1'");


das aktiv musste in id geändert werden ^^ jetzt ist zumindest die fehlermeldung scho ma weg aber hoch zählen tut er trotzdem noch nicht :roll:


gruß
JayJay1988
Newbi
 
Beiträge: 6
Registriert: Mo, 20:07:57 30.03.09

Re: Problem mit mysql_num_rows

Beitragvon Marcel am Fr, 07:09:18 3.04.09

es wäre wohl besser gewesen, wenn du erstmal ein echo mysql_error(); nach dem mysql_query() eingesetzt hättest, dann hätte man sehen können, was genau der Fehler ist.

  1. $result = mysql_query("SELECT id FROM News WHERE aktiv = '1'");

- Gibt es denn überhaupt eine Spalte Aktiv in der DB News?
- Zahlen müssen nicht per '' in Strings gewandelt werden,
- Wenn du jetzt id statt aktiv einsetzt und den Rest so läßt, wird dir MySql nur eine Zeile aus der DB liefern (die mit der ID 1),
MfG
Marcel
Marcel
Member
 
Beiträge: 542
Registriert: Di, 16:13:41 3.01.06

Re: Problem mit mysql_num_rows

Beitragvon JayJay1988 am Di, 18:40:40 7.04.09

ok haben es hinbekommen ... haben das script noch mal neu (und kürzer) gemacht haut jetzt alle super hin trotzdem danke für die hilfe :D
JayJay1988
Newbi
 
Beiträge: 6
Registriert: Mo, 20:07:57 30.03.09

Zurück zu PHP mit Sql



cron