kostenloser Webspace werbefrei: lima-city


Zufall aus DB

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    sneppa

    Kostenloser Webspace von sneppa

    sneppa hat kostenlosen Webspace.

    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?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Ich w?rd einfach die Eintr?ge zuerst z?hlen lassen (sone Funktion gibts doch, oder?)
    Und dann w?rde ich von PHP eine Zufallszahl generieren lassen, im Zahlbereich von der ersten ID bis zur letzten - dann diese auslesen lassen.

    MfG lagerhaus
  4. Autor dieses Themas

    sneppa

    Kostenloser Webspace von sneppa

    sneppa hat kostenlosen Webspace.

    H?? Ich will nur eine ausgeben lassen...
  5. <?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.
  6. es gibt auch ne mysql funktion um datensetz zuf?llt zu sortieten nimmt man dann den ersten hat man einen zuf?lligen datensatz
  7. Autor dieses Themas

    sneppa

    Kostenloser Webspace von sneppa

    sneppa hat kostenlosen Webspace.


    <?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?
  8. 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
  9. 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.
  10. Autor dieses Themas

    sneppa

    Kostenloser Webspace von sneppa

    sneppa hat kostenlosen Webspace.

    @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
  11. 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.

  12. @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...
  13. lordoflima

    Admin Kostenloser Webspace von lordoflima

    lordoflima hat kostenlosen Webspace.

    SELECT * FROM tabelle ORDER BY RAND() LIMIT 0,1
  14. Autor dieses Themas

    sneppa

    Kostenloser Webspace von sneppa

    sneppa hat kostenlosen Webspace.

    Wie gehten dess das ich die h?chste ID auslese?
  15. Mach doch einfach ORDER BY DESC und gib dann die "erste" aus.
  16. Autor dieses Themas

    sneppa

    Kostenloser Webspace von sneppa

    sneppa hat kostenlosen Webspace.

    Wie geb ich das "erste" aus?
  17. lordoflima schrieb:
    SELECT * FROM tabelle ORDER BY RAND() LIMIT 0,1


    Genau das meinte ich oben :biggrin:
  18. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!