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![]()
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![]()
Potresti prendere tutti i dati, e con la array_rand() estrarne uno a caso.
..oppure, potevi usare la shuffle(), prendendo il primo elemento dall'array ritornato...Codice PHP:
$ris = mysql_query('SELECT colonna FROM tabella');
if(!$ris)
echo 'errore...';
else
{
$righe = mysql_fetch_row($ris);
echo array_rand($righe);
}
Ciao!
regolamento altervista_______________ regolamento forum
usando il tuo codice mi stampa uno 0?????
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!
regolamento altervista_______________ regolamento forum
SELECT colonna FROM tabella ORDER BY RAND()
cosi?? senza niente nelle tonde del randCodice:SELECT nome_squadra FROM campionatisquadre ORDER BY RAND() WHERE (nome_campionato='Ligue 1')";
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:
come posso fare?? la pagina la vorrei cosi: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'].'';
}
?>
AAAA-BBBB
CCC-DDDD
EEE-FFFF
Ultima modifica di dreadnaut : 13-05-2012 alle ore 18.13.23 Motivo: + tag [code] e [php]
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 givenCodice 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 21.44.40 Motivo: + tag [php] per il codice
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/
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 18.22.15 Motivo: +tag [php]
In quell'echo stai cercando di fare la sottrazione fra due stringhe. Forse volevi scrivere
Codice PHP:
echo $riga[1] . ' - ' . $riga[2];
Ho scritto come mi hai detto te solo che non mi stampa comunque niente. AIUTOOO!!![]()
Ah, questo: non puoi prendere un elemento di un array così come usi $_GET, nella stringa.
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:
$stringa="SELECT nome_squadra FROM campionatisquadre WHERE (nome_campionato='{$_GET['campionato']}') ORDER BY RAND() LIMIT 0,2;";
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 20.04.27
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 22.31.24 Motivo: +tag [php]
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 19.46.59 Motivo: +tag [php]