Zufall aus DB
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anzahl
auslese
beitrag
count
doubeln
eintrag
funktion
galerie
jasmin
klappe
letzte
limit
null
order
parameter
pub
spalten
startwert
tabelle
zeile
-
Hi Ho!
Hab da mal ne Frage!
Wie ich aus einer DB zuf?llig einen bestimmten wert auslessen? Also ich habe so eine DB:
ID name
1 g?nther
2 Frank
3 Jonas
4 Karl
5 jasmin
6 Leon
7 Laura
. .
. .
. .
Wie geht das das ich sag zufall ID und davon die spalte name? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
H?? Ich will nur eine ausgeben lassen...
-
<?php //Zahl generieren srand((double)microtime()*1000000); $zufall = rand(1,100); ?>
Also du machst einfach ne Zufallszahl und mit der kannste ja dann einfach einen Eintrag ausgeben lassen. -
es gibt auch ne mysql funktion um datensetz zuf?llt zu sortieten nimmt man dann den ersten hat man einen zuf?lligen datensatz
-
<?php //Zahl generieren srand((double)microtime()*1000000); $zufall = rand(1,100); ?>
Also du machst einfach ne Zufallszahl und mit der kannste ja dann einfach einen Eintrag ausgeben lassen.
Die zahl w?r doch dann etwas gro??
Wie kann ich mit diesem script sagen von der zu der zahl? meinetwegen mindestens 2 und h?chsten 6? -
M?sste so klappen, ist aber nicht getestet.
$table = 'Tabelle'; $rows = mysql_query ( "SELECT COUNT(id) FROM `".$table.'`" ); $id = rand ( '0', $rows ); $query = mysql_query ( "SELECT FROM `".$table."` WHERE `id` = `".$id."`" ); $query = $query[0]; print ( $query['id'] );
MfG Lucas
*nachtr?glich_einf?g*
Du solltest beachten, dass die Spalte mit der Zuf?llig generierten ID auch vorhanden sein sollte!
Also vllt noch ne Abfrage ("if ( $query === false ) { printf ( 'Die ID %s ist nicht vorhanden', $id ); }") reinpacken.
Beitrag ge?ndert am 10.09.2005 15:52 von lucas9991 -
Lucas bei deiner Variante w?rde aber glaube ich immer der gleiche Startwert rauskommen.
@sneppa
<?php //Zahl generieren srand((double)microtime()*1000000); $zufall = rand($von,$bis); ?>
Verstehste?? Du kannst die Zahlen ja ver?ndern. Du kannst auch per num_rows den bis-wert festlegen o. -
@lucas ein paar saachen raff ich nich ganz:
$table = 'Tabelle';
Is der name der Tabelle, ne?
$rows = mysql_query ( "SELECT COUNT(id) FROM `".$table.'`" );
was bedeutet count?
$id = rand ( '0', $rows );
Was soll mit der null angegeben werden?
$query = mysql_query ( "SELECT FROM `".$table."` WHERE `id` = `".$id."`" );
Is klar
$query = $query[0];
?
print ( $query['id'] );
Zur ausgabe? oder was?
@i-spacke:
und die zeile:
srand((double)microtime()*1000000);
generiert das dann? ...
Ehm... Der Fehler kommt:
Warning: rand() expects exactly 2 parameters, 1 given in /home/wwwusr/m-musek/pub/galerie/generieren.php on line 8
Beitrag ge?ndert am 10.09.2005 16:05 von sneppa
Beitrag ge?ndert am 10.09.2005 16:35 von sneppa -
srand() legt quasi den Startwert fest. Und bei rand musst du 2 Parameter ?bergeben. Zum Beispiel rand(2,20). Dabei wird eine Zahl zwischen 2 und 20 generiert.
-
@lucas ein paar saachen raff ich nich ganz:
$table = 'Tabelle';
Is der name der Tabelle, ne?
ja, da bezeichnet er nur den tabellennamen, kannst vom prinzip auch weglassen, dann darfst du aber in den query?s keine variable nutzen f?r den tabellennamen....
$rows = mysql_query ( "SELECT COUNT(id) FROM `".$table.'`" );
was bedeutet count?
count:
mit count z?hlt er die "gefundenen" eintr?ge, da hier kein "WHERE" genutzt wird, z?hlt er alle, die in der db vorhanden sind.
ist gleichzusetzetn mit
$anzahl = mysql_num_rows(SQLABFRAGE)
$id = rand ( '0', $rows );
Was soll mit der null angegeben werden?
mit der "0" gibst du den bereich an, von wo, bis wo nahc einer zufallszahl gesucht wird.
in dem fall wird die eine zahl ausgegenem, die zwischen -1 (also ab der 0) bis anzahl der zeilen bei der "count" abfrage... wo gez?hlt wird...
$query = mysql_query ( "SELECT FROM `".$table."` WHERE `id` = `".$id."`" );
Is klar
$query = $query[0];
?
das "query[0]" bedeutet glaube ich, das du damit den ersten (und eigentlich auch einzigsten) eintrag im array abfragst, und dieser dann auf $query geschrieben wird...
aber das weis ich auch nich so genau...
-
Wie gehten dess das ich die h?chste ID auslese?
-
Mach doch einfach ORDER BY DESC und gib dann die "erste" aus.
-
Wie geb ich das "erste" aus?
-
lordoflima schrieb:
SELECT * FROM tabelle ORDER BY RAND() LIMIT 0,1
Genau das meinte ich oben -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage