Nur 1 Datensatz ausgeben

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
Bones van Helghast
Mitglied
Beiträge: 157
Registriert: 19.09.2008 08:31

Nur 1 Datensatz ausgeben

Beitrag 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...
4seven
Mitglied
Beiträge: 5869
Registriert: 21.04.2007 06:18

Re: Nur 1 Datensatz ausgeben

Beitrag 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";   
Benutzeravatar
Bones van Helghast
Mitglied
Beiträge: 157
Registriert: 19.09.2008 08:31

Re: Nur 1 Datensatz ausgeben

Beitrag 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 [..]
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: Nur 1 Datensatz ausgeben

Beitrag von Pyramide »

Wie die Fehlermeldung schon sagt, ist $verbindung kein Objekt und deshalb kann davon keine Funktion aufgerufen werden.
KB:knigge
Benutzeravatar
Bones van Helghast
Mitglied
Beiträge: 157
Registriert: 19.09.2008 08:31

Re: Nur 1 Datensatz ausgeben

Beitrag von Bones van Helghast »

Und wie behebe ich nun das Problem ?
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: Nur 1 Datensatz ausgeben

Beitrag von Pyramide »

Indem du $verbindung ein Objekt zuweist, dessen Klasse eine Methode sql_query_limit hat.
KB:knigge
Benutzeravatar
Bones van Helghast
Mitglied
Beiträge: 157
Registriert: 19.09.2008 08:31

Re: Nur 1 Datensatz ausgeben

Beitrag von Bones van Helghast »

öööhm *am kopf kratz* kein wort verstanden aber okay... :(
ich bin ja immernoch für anwendungsbeispiele :-?
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: Nur 1 Datensatz ausgeben

Beitrag von Pyramide »

Dann solltest du mit gutem Beispiel vorangehen und den vollständigen Code posten.

KB:programmierfragen
KB:knigge
Benutzeravatar
Bones van Helghast
Mitglied
Beiträge: 157
Registriert: 19.09.2008 08:31

Re: Nur 1 Datensatz ausgeben

Beitrag 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...
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: Nur 1 Datensatz ausgeben

Beitrag 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.
KB:knigge
Antworten

Zurück zu „Coding & Technik“