SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 21.11.2002, 11:15:41
MacMarc MacMarc ist offline
Anfänger
 
Registriert seit: Nov 2002
Beiträge: 6
MySQL - ORDER BY RAND() und PHP

hallo zusammen

ich möchte mit php und mysql einen beliebigen datensatz aus einer db auf meiner webseite anzeigen.

wenn folgenden mysql befehl auf der mysql console eingebe, funktioniert das auch:

Code:
mysql> SELECT * FROM zitat ORDER BY RAND() LIMIT 1;
wenn ich den gleichen select befehl jedoch via php aufrufe, zeigt er mir immer nur den letzten datensatz in der tabellle an.

der php code lautet wie folgt:

Code:
$db = @MYSQL_CONNECT($db_host,$db_user,$db_pw) or die ("mysql connect failed");
$db_select = @MYSQL_SELECT_DB($db_name) or die ("mysql select db failed");
$result = mysql_query("SELECT * FROM zitat ORDER BY RAND() LIMIT 1") or die ("mysql query failed");
$menge = mysql_num_rows($result);

while($row = mysql_fetch_row($result)){
echo "$row[1]<br><br> <i>$row[2]</i><br>";
}
was mache ich falsch, resp. was übersehe ich, dass es nicht funktioniert?

besten dank.

grüsse,
marc

Geändert von MacMarc (21.11.2002 um 11:21:21 Uhr)
Mit Zitat antworten
  #2  
Alt 21.11.2002, 13:05:44
Benutzerbild von |Coding
|Coding |Coding ist offline
Administrator
 
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|Coding eine Nachricht über Skype™ schicken
moin,

lass das "LIMIT 1" mal aus deinem query raus, dann bekommst du auch mehr angezeigt....
__________________
Gruß |Coding

---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.

www.qozido.de
Mit Zitat antworten
  #3  
Alt 21.11.2002, 14:12:56
MiH MiH ist offline
Member
 
Registriert seit: Aug 2002
Beiträge: 775
der datensatz wird doch per zufall ermittelt, und wenn 100x der letzte dran ist dann ist es eben so. sofern der query in mysql korrekt geht gehts auch in php.

durch das weglassen von limit 1 werden die datensätze zufällig sortiert ;)
Mit Zitat antworten
  #4  
Alt 21.11.2002, 14:23:50
Benutzerbild von |Coding
|Coding |Coding ist offline
Administrator
 
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|Coding eine Nachricht über Skype™ schicken
das soll docj passieren, oder was meinst du warum man sonst rand() verwendet?

ist doch wohl logisch... und wenn er limit 1 weg lässt dann werden alle daten sätze ausgegeben und ... mehr wolte er doch nicht oder habe ich da was nicht mit gekriegt???
__________________
Gruß |Coding

---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.

www.qozido.de
Mit Zitat antworten
  #5  
Alt 21.11.2002, 14:25:05
MacMarc MacMarc ist offline
Anfänger
 
Registriert seit: Nov 2002
Beiträge: 6
was mich eben irritiert, ist die tatsache, dass wenn ich es auf der mysql console mache er wirklich immer einen anderen datensatz anzeigt, nur wenn ich es per php aufrufe, tut er das nicht.
Mit Zitat antworten
  #6  
Alt 21.11.2002, 14:29:19
Gweilo Gweilo ist offline
Member
 
Registriert seit: Oct 2002
Ort: ch
Beiträge: 822
also, bei mir funktionniert der befehl aus php problemlos. auch mit limit 1
Mit Zitat antworten
  #7  
Alt 21.11.2002, 15:47:01
MacMarc MacMarc ist offline
Anfänger
 
Registriert seit: Nov 2002
Beiträge: 6
komisch. ist schon irgendwie unlogisch, dass er es auf der mysql console richtig macht und mit php immer nur den letzten anzeigt.

kann das vielleicht daran liegen, dass im moment lediglich 3 datensätze vorhanden sind?

in meinem code (siehe oben) ist ja auch nichts falsch, oder?
Mit Zitat antworten
  #8  
Alt 21.11.2002, 16:07:25
Gweilo Gweilo ist offline
Member
 
Registriert seit: Oct 2002
Ort: ch
Beiträge: 822
hmm. nein. mein code ist genau der selbe. (nur hab ich rand klein geschrieben, das macht aber kein unterschied.)

versuch mal limit 2 oder so und schau dann, obs funktionniert, oder gar ohne limit, was dann rauskommt
Mit Zitat antworten
  #9  
Alt 21.11.2002, 16:10:21
Gweilo Gweilo ist offline
Member
 
Registriert seit: Oct 2002
Ort: ch
Beiträge: 822
vielleicht hat er die seite auch im cache und bearbeitet den code gar nicht mehr erst...
Mit Zitat antworten
  #10  
Alt 21.11.2002, 16:13:39
MacMarc MacMarc ist offline
Anfänger
 
Registriert seit: Nov 2002
Beiträge: 6
wenn ich limit 2 angebe, nimmt er einfach die zwei letzten und wenn ich das limit ganz rausnehme, dann tut er die ganze tabelle einfach in umgekehrter reihenfolge darstellen.

aus dem cache nimmt er es auch nicht - habe ich geschaut.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:38:41 Uhr.


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


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt