Visualizzazione risultati 1 fino 14 di 14

Discussione: estrarre dati db in modo casuale

  1. #1
    Guest

    Predefinito estrarre dati db in modo casuale

    Salve a tutti, avrei la necessità di estrarre in modo casuale record della stessa colonna di un database mysql con php, mi sapreste dire come si fa perchè non ne ho la minima idea. GRAZIE

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    15,657

    Predefinito

    Potresti prendere tutti i dati, e con la array_rand() estrarne uno a caso.

    Codice PHP:
    $ris mysql_query('SELECT colonna FROM tabella');
    if(!
    $ris)
       echo 
    'errore...';
    else
    {
         
    $righe mysql_fetch_row($ris);
         echo 
    array_rand($righe);

    ..oppure, potevi usare la shuffle(), prendendo il primo elemento dall'array ritornato...

    Ciao!

  3. #3
    Guest

    Predefinito

    usando il tuo codice mi stampa uno 0?????

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    15,657

    Predefinito

    Scusami: array_rand() ritorna l'indice dell'elemento, e non l'elemento... Però è strano che sia sempre 0: hai soltanto un dato nella tabella?

    Ciao!

  5. #5
    Data registrazione
    06-04-2012
    Messaggi
    7

    Predefinito

    SELECT colonna FROM tabella ORDER BY RAND()

  6. #6
    Guest

    Predefinito

    Codice:
    SELECT nome_squadra FROM campionatisquadre  ORDER BY RAND() 
    WHERE (nome_campionato='Ligue 1')";
    cosi?? senza niente nelle tonde del rand

    Unione discussioni

    vorrei stampare in modo casuale dei record della stessa colonna da un database mysql facendo cosi mi da errore dicendomi che mysql_fetch_array() si aspetta un solo parametro:

    Codice PHP:
    <?php
    $var
    =mysql_connect("localhost","root","info") or die("Connessione non riuscita: " mysql_error());
    mysql_select_db("tesisc");
    $stringa="SELECT nome_squadra FROM campionatisquadre  WHERE (nome_campionato='Ligue 1') ORDER BY RAND(1,254) ";
    $ris=mysql_query($stringa);
    while(
    $riga=mysql_fetch_array($ris))
    {
        echo 
    ''.$riga['nome_squadra'].'';
    }  
    ?>
    come posso fare?? la pagina la vorrei cosi:

    AAAA-BBBB

    CCC-DDDD

    EEE-FFFF
    Ultima modifica di dreadnaut : 13-05-2012 alle ore 19.13.23 Motivo: + tag [code] e [php]

  7. #7
    Guest

    Predefinito

    Ho fatto questo codice per estrarre in modo casuale un campo dal database solo che mi questi errori perche?????
    Codice:
    Notice: Use of undefined constant rs - assumed 'rs' 
    
    Warning: next() expects exactly 1 parameter, 0 given
    Codice PHP:
    <?php
    $r
    ;

    $var=mysql_connect("localhost","root","info") or die("Connessione non riuscita: " mysql_error());
    mysql_select_db("tesisc");

    while(
    rs.next())
    {
        
    $r=rand(3,254);
        
    $stringa="SELECT nome_squadra FROM campionatisquadre  WHERE ((nome_campionato='Ligue 1') AND (ID=='".$r."'));";
        
    $ris=mysql_query($stringa);
    }  
    ?>
    Ultima modifica di alemoppo : 18-05-2012 alle ore 22.44.40 Motivo: + tag [php] per il codice

  8. #8
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    5,906

    Predefinito

    Cosa dovrebbe essere rs.next()? Se è una variabile, deve avere un dollaro $ davanti, ma non è definita da nessuna parte. Senza dollaro, php cerca una costante con quel nome, non la trova, e quindi ti mostra l'errore di cui sopra.

    Per l'estrazione casuale, guarda le query di esempio mostrate qua:
    http://www.lejubila.net/2009/11/mysq...zione-casuale/
    chezDreadnaut
    "Un <BR/> è impuro, punto."
    "I <P>&nbsp;</P> non hanno diritto di esistere."

  9. #9
    Guest

    Predefinito

    ragazzi è urgente rispondetemi perfavore ho scritto questo codice solo che non mi stampa niente:
    Codice PHP:
    <?php
    $r
    ;

    $var=mysql_connect("localhost","sinopoli","") or die("Connessione non riuscita: " mysql_error());
    mysql_select_db("my_sinopoli");
    $stringa="SELECT nome_squadra FROM campionatisquadre WHERE (nome_campionato='$_GET[campionato]') ORDER BY RAND() LIMIT 0,2;";
    $ris=mysql_query($stringa);
    while(
    $riga=mysql_fetch_array($ris))
    {
        echo 
    $riga[1]-$riga[2];
    }  
    ?>
    Ultima modifica di alemoppo : 22-05-2012 alle ore 19.22.15 Motivo: +tag [php]

  10. #10
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    5,906

    Predefinito

    In quell'echo stai cercando di fare la sottrazione fra due stringhe. Forse volevi scrivere
    Codice PHP:
     echo $riga[1] . ' - ' $riga[2]; 
    chezDreadnaut
    "Un <BR/> è impuro, punto."
    "I <P>&nbsp;</P> non hanno diritto di esistere."

  11. #11
    Guest

    Predefinito

    Ho scritto come mi hai detto te solo che non mi stampa comunque niente. AIUTOOO!!

  12. #12
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    5,906

    Predefinito

    Ah, questo: non puoi prendere un elemento di un array così come usi $_GET, nella stringa.
    Codice PHP:
    $stringa="SELECT nome_squadra FROM campionatisquadre WHERE (nome_campionato='$_GET[campionato]') ORDER BY RAND() LIMIT 0,2;"
    Quello funziona solo per nomi di variabili semplici, e.g. $campionato. Per usare un array (o un oggetto) dovresti metterlo fra parentesi graffe, così:
    Codice PHP:
    $stringa="SELECT nome_squadra FROM campionatisquadre WHERE (nome_campionato='{$_GET['campionato']}') ORDER BY RAND() LIMIT 0,2;"
    Prendere un parametro dall'utente senza controlli non è comunque saggio, quindi fai un minimo di controlli, così:
    Codice PHP:
    $campionato mysql_real_escape_string($_GET['campionato']);
    $stringa="SELECT nome_squadra FROM campionatisquadre WHERE (nome_campionato='$campionato') ORDER BY RAND() LIMIT 0,2;"
    Ultima modifica di dreadnaut : 23-05-2012 alle ore 21.04.27
    chezDreadnaut
    "Un <BR/> è impuro, punto."
    "I <P>&nbsp;</P> non hanno diritto di esistere."

  13. #13
    Guest

    Predefinito

    Ho cambiato la query come mi hai detto solo che mi stampa 00 senza neanche il -.
    Per adesso sto provando solo con due campi, ma quello che vorrei io e che conta quanti squadre ci sono in quel campionato in modo che LIMIT 0,squadrecontate. Ho fatto questo codice e mi stampa tanti - quante sono le squadre invece che il nome squadra. GRAZIE
    Codice PHP:
    <html>
    <head>
    </head>
    <body><title>Calcio & Scommesse</title>
    <form method="POST" name="X">
    <DIV align="right">Nome Utente:<input type="text" name="Nome utente">Password:<input type="password" name="Password"><input type="submit" value="accedi"><a href="pswdim.html">Password dimenticata?</a> <a href="reg.php">Registrati</a></DIV>
    <body bgcolor="gray">
    <DIV align="left"><img src="img.jpg"/></DIV>
    <?php
    $var
    =mysql_connect("localhost","sinopoli","") or die("Connessione non riuscita: " mysql_error());
    mysql_select_db("my_sinopoli");
    $c=0;
    $stringa2="SELECT nome_squadra FROM campionatisquadre WHERE (nome_campionato='{$_GET['campionato']}')";
    $ris2=mysql_query($stringa2);
    while(
    $riga2=mysql_fetch_array($ris2))
    {
            
    $c=$c+1;
    }
    $stringa="SELECT nome_squadra FROM campionatisquadre WHERE (nome_campionato='{$_GET['campionato']}') ORDER BY RAND() LIMIT 0,$c;";
    $ris=mysql_query($stringa);
    $r=1;$x=2;
    while(
    $riga=mysql_fetch_array($ris))
    {
        echo 
    $riga[$r].'-'.$riga[$x];
            
    $r=$r+2;
            
    $x=$x+2;
    }  
    ?>
    </FORM>
    </BODY>
    </HTML>
    Ultima modifica di alemoppo : 23-05-2012 alle ore 23.31.24 Motivo: +tag [php]

  14. #14
    Guest

    Predefinito

    Sono riuscito solo che mi vengono stampati diversamente da come vorrei: http://www.sinopoli.altervista.org/index.php io li voglio cosi:

    squadra_a-squadra_b
    squadra_c-squadra_d

    Un'altra cosa mi sapreste spiegare come mai funziona mettendo come indice fisso 0 e 1? non dovrebbe darmi sempre gli stessi risultati
    Codice PHP:
    <html>
    <head>
    </head>
    <body><title>Calcio & Scommesse</title>
    <form method="POST" name="X">
    <DIV align="right">Nome Utente:<input type="text" name="Nome utente">Password:<input type="password" name="Password"><input type="submit" value="accedi"><a href="pswdim.html">Password dimenticata?</a> <a href="reg.php">Registrati</a></DIV>
    <body bgcolor="gray">
    <DIV align="left"><img src="img.jpg"/></DIV>
    <DIV align="center">
    <?php
    $var
    =mysql_connect("localhost","sinopoli","") or die("Connessione non riuscita: " mysql_error());
    mysql_select_db("my_sinopoli");
    $c=0;
    $stringa2="SELECT nome_squadra FROM campionatisquadre WHERE (nome_campionato='{$_GET['campionato']}')";
    $ris2=mysql_query($stringa2);
    while(
    $riga2=mysql_fetch_array($ris2))
    {
            
    $c=$c+1;
    }
    $stringa="SELECT nome_squadra FROM campionatisquadre WHERE (nome_campionato='{$_GET['campionato']}') ORDER BY RAND() LIMIT 0,$c;";
    $ris=mysql_query($stringa);

    while(
    $riga=mysql_fetch_array($ris))
    {
        echo 
    $riga[0];
        echo 
    '-';
            echo 
    $riga[1];
            echo 
    '<br>';
            
    }  
    ?>
    <a href="index.php">torna alla Home page</a>
    </DIV>
    </FORM>
    </BODY>
    </HTML>
    Ultima modifica di alemoppo : 28-05-2012 alle ore 20.46.59 Motivo: +tag [php]

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •