Seite 1 von 2

Nur 1 Datensatz ausgeben

Verfasst: 10.01.2010 22:15
von Bones van Helghast
Die größte Anfänger frage die ich je hatte.
Ich hab ein kleines Random erstellt das verschiedene dinge ausgibt:
d.H
ID | Titel | Bildurl | Text | Lied

zufalls ausgabe funktioniert super !
allerdings würde ich gerne dass nur immer 1 Datensatz ausgegeben wird und nicht 2.
Momentan schauts nähmlich so aus dass das zufallsprinzip funktioniert.
Ich hab 2 Sätze mal angesetzt ID 1 und ID 2 jeweils mit unterschiedlichen texten.
Drück ich F5 steht zB ID 1 oben und ID 2 unten drück ich 3-4 mal erneut F5 und es ist anderst rum
es soll aber nur immer 1 Datensatz ausgegeben werden und nicht gleich alle gleichzeitig in einer zufallsausgabe...
mein php sieht so aus:

Code: Alles auswählen

<?php include 'connect.php';
$sql = " SELECT 
	bildurl,
	head,
	lied,
	text 
	FROM 
	random
	ORDER BY
	RAND() LIMIT 3";               
     $result = mysql_query($sql);
    if(mysql_num_rows($result)) {
        while($row = mysql_fetch_assoc($result)) {

dann die ganzen echos
        }
    } else {
        echo"<p>Kein Datensatz vorhanden</p>\n";
    }

?>
ich wüsste nun wo ich den fehler reingehaut hab o.O

Edit:

Wenn ich zu den SQL befehl noch "MAX (1)" dazu füge kommt ein error:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\xampplite\htdocs\4u.php on line 86

Edit:

Ich hab erneut einwenig daran "gepfuscht" nun kommt keine error meldung mehr allerdings wird nun auch kein zufall mehr gegeben...

Nun sieht das ganze so aus:

Code: Alles auswählen

<?php include 'connect.php';
$sql = " SELECT 
	bildurl,
	head,
	lied,
	text 
	MAX
	(1)
	FROM 
	random_4u 
	ORDER BY
	RAND() LIMIT 3"; 
	$result=mysql_query($sql);              
if (!$result); {

dann die ganzen echos

        } 
 ?>
mir scheint es als würde er nun nicht mal mehr einer der ID's anwählen...

Re: Nur 1 Datensatz ausgeben

Verfasst: 10.01.2010 23:34
von 4seven
Bones van Helghast hat geschrieben:

Code: Alles auswählen

$result = mysql_query($sql);
versuchs mal mit

Code: Alles auswählen

$result = $db->sql_query_limit($sql, 1);
und nimm das LIMIT3

hier raus

Code: Alles auswählen

   ORDER BY
   RAND() LIMIT 3";   

Re: Nur 1 Datensatz ausgeben

Verfasst: 11.01.2010 14:32
von Bones van Helghast
Also wenn ich das nun so mache wie du sagst sieht das so aus (?!)

Code: Alles auswählen

$sql = " SELECT 
	bildurl,
	head,
	lied,
	text 
	MAX
	(1)
	FROM 
	random 
	 ORDER BY
   RAND()";
        $result = $verbindung->sql_query_limit($sql, 1);
    if (!$result); {
hier sind die echos
        } 
 ?>
ich hab das db mit verbindung getauscht weil in der connect das nicht unter "db" läuft sondern stattdessen verbindung heißt.

wenn ich das so speicher und aufrufe kommt das:
Fatal error: Call to a member function sql_query_limit() on a non-object in C:\xampplite\htdocs\4ur.php on line 86

zeile 86 ist das $result = $verbindung [..]

Re: Nur 1 Datensatz ausgeben

Verfasst: 11.01.2010 17:03
von Pyramide
Wie die Fehlermeldung schon sagt, ist $verbindung kein Objekt und deshalb kann davon keine Funktion aufgerufen werden.

Re: Nur 1 Datensatz ausgeben

Verfasst: 11.01.2010 18:13
von Bones van Helghast
Und wie behebe ich nun das Problem ?

Re: Nur 1 Datensatz ausgeben

Verfasst: 11.01.2010 19:09
von Pyramide
Indem du $verbindung ein Objekt zuweist, dessen Klasse eine Methode sql_query_limit hat.

Re: Nur 1 Datensatz ausgeben

Verfasst: 11.01.2010 19:26
von Bones van Helghast
öööhm *am kopf kratz* kein wort verstanden aber okay... :(
ich bin ja immernoch für anwendungsbeispiele :-?

Re: Nur 1 Datensatz ausgeben

Verfasst: 11.01.2010 20:55
von Pyramide
Dann solltest du mit gutem Beispiel vorangehen und den vollständigen Code posten.

KB:programmierfragen

Re: Nur 1 Datensatz ausgeben

Verfasst: 11.01.2010 21:22
von Bones van Helghast
LoL. mehr als echos sind da nicht >.< aber gut wenns weiter hilft:

Code: Alles auswählen

<?php include 'connect.php';
$sql = " SELECT 
	bildurl,
	head,
	lied,
	text 
	MAX
	(1)
	FROM 
	random 
	 ORDER BY
   RAND()";
        $result = $db->sql_query_limit($sql, 1);
    if (!$result); {
include 'body/4u/01.php';
echo $row ['head'];       
include 'body/4u/02.php';
echo "<img src=";
echo $row['bildurl'];
echo"></center><br><br>";
echo $row['text'];						
include 'body/4u/03.php';
echo "
<iframe src= ";
echo $row['lied'];
echo" scrolling=no style=width:0px; height:0px frameborder=0></iframe>";	
        } 
 ?>
Über die Includes einfach nicht wundern das sind nur kleine HTML schnitte in einer PHP datei dass ich nicht die Übersicht in der einzelne Datei verliere...

Re: Nur 1 Datensatz ausgeben

Verfasst: 11.01.2010 21:50
von Pyramide
In dem weiter oben geposteten Code lautete die fehlerhafte Zeile aber noch

Code: Alles auswählen

$result = $verbindung->sql_query_limit($sql, 1);
, während sie hier jetzt

Code: Alles auswählen

$result = $db->sql_query_limit($sql, 1);
lautet. Außerdem war es oben laut Fehlermeldung Zeile 86 und hier ist es Zeile 13.