|
|
| Autore |
Messaggio |
davidale
nuovo utente

Registrato: 08/11/07 16:51
Messaggi: 7
|
Oggetto: random funzione su ID
Inviato: 08.11.07 | 16:54 |
|
|
Salve ragazzi ho un piccolo problema con il mio script...dovrei fare un random sugli ID di una query. Il problema sussiste quando l'amministratore deve cancellare un a riga della tabella e conseguentemente anke l'ID relativo...
 |
|
| Torna in cima |
|
|
Sponsor
|
|
 |
AngaraT
intermedio


Registrato: 23/03/04 21:10
Messaggi: 152
|
Oggetto:
Inviato: 08.11.07 | 17:45 |
|
|
| ciao forse non ho capito quello che devi fare ma non ti basta un "select * from tabella order by rand() limit 1" e poi passi l'id risultante allo script se lo devi eliminare tramite post o get? |
|
| Torna in cima |
|
|
davidale
nuovo utente

Registrato: 08/11/07 16:51
Messaggi: 7
|
Oggetto:
Inviato: 09.11.07 | 12:20 |
|
|
si infatti ho risolto così...era una domanda abb. facile ....
grazie 1000 lo stesso... |
|
| Torna in cima |
|
|
A.C
nuovo utente

Registrato: 26/11/07 15:48
Messaggi: 6
|
Oggetto:
Inviato: 26.11.07 | 15:53 |
|
|
Ciao ragazzi, premetto che son troppo scarso in php, anche io credo di avere un dubbio simile, guardate questo codice:
| Codice: | <?php
$database->setQuery( "SELECT id FROM #__menu WHERE link LIKE '%com_puarcade%'" );
$database->loadobject($ItemObject);
$ArcadeItemid = $ItemObject->id;
$moduleclass_sfx = $params->get('moduleclass_sfx','');
$pu_scorelink = $params->get('scorelink','0');
$scoreornot = $params->get( 'score', '0');
$id1 = $params->get( 'game', '1');
$scorelimit = $params->get( 'scores', '1');
$query = "Select imagename,title,id,reverse_score,gamename from #__puarcade_games where id = '$id1'";
$database->setQuery( $query );
$Game = $database->loadRow();
if ($Game[3] == 1)
$order = "ASC";
else
$order = "DESC";
$query = "Select #__puarcade.score,#__users.username,#__puarcade.userid from #__puarcade left join #__users on (#__puarcade.userid = #__users.id) where #__puarcade.gameid = '$id1' order by #__puarcade.score ".$order." limit ".$scorelimit;
$database->setQuery( $query );
$Scores = $database->loadObjectList();
?> |
Allora, io vorrei prendere a caso il valore id, che dovrebbe corrispondere ad un gioco, così che ogni volta che uno refrescia la pagina, viene perso a casa un gioco dal db.
Potete aiutarmi pls? |
|
| Torna in cima |
|
|
Coach
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4546
Località: Verona
|
Oggetto:
Inviato: 27.11.07 | 19:59 |
|
|
Ciao A.C e Benvenuto nel Forum.
Non ti va bene la soluzione postata da AngaraT? (order by rand() limit 1)
P.S: quando posti del codice PHP se inserisci i tag di apertura e chiusura il codice si colora.
. ____________________________________________________________
Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE! |
|
| Torna in cima |
|
|
A.C
nuovo utente

Registrato: 26/11/07 15:48
Messaggi: 6
|
Oggetto:
Inviato: 29.11.07 | 00:06 |
|
|
Ok sputatemi, ma non capisco come usalrla nel codice....  |
|
| Torna in cima |
|
|
Coach
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4546
Località: Verona
|
|
| Torna in cima |
|
|
A.C
nuovo utente

Registrato: 26/11/07 15:48
Messaggi: 6
|
Oggetto:
Inviato: 29.11.07 | 12:09 |
|
|
Sigh non funzia
lo puoi vedere dal sito ps3italia.it
Anche se refrescio la pagina, rimane sempre lo stesso gioco....
ti posto il codice competo, magari son io che sbaglio a metter il tuo codice
| Codice: | <?php
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
global $mainframe,$livesite,$database;
if(file_exists($mainframe->getCfg('absolute_path') . '/components/com_puarcade/lang/' . $mainframe->getCfg('lang') . '.php')){
require_once($mainframe->getCfg('absolute_path') . '/components/com_puarcade/lang/' . $mainframe->getCfg('lang') . '.php');
} else {
require_once($mainframe->getCfg('absolute_path') . '/components/com_puarcade/lang/english.php');
}
$database->setQuery( "SELECT id FROM #__menu WHERE link LIKE '%com_puarcade%'" );
$database->loadobject($ItemObject);
$ArcadeItemid = $ItemObject->id;
$moduleclass_sfx = $params->get('moduleclass_sfx','');
$pu_scorelink = $params->get('scorelink','0');
$scoreornot = $params->get( 'score', '0');
$id1 = $params->get( 'game', '1');
$scorelimit = $params->get( 'scores', '1');
//$query = "Select imagename,title,id,reverse_score,gamename from #__puarcade_games where id = '$id1'";
$query = "SELECT imagename, title, id, reverse_score, gamename FROM #__puarcade_games WHERE id = '$id1' ORDER by rand() LIMIT 1";
$database->setQuery( $query );
$Game = $database->loadRow();
if ($Game[3] == 1)
$order = "ASC";
else
$order = "DESC";
$query = "Select #__puarcade.score,#__users.username,#__puarcade.userid from #__puarcade left join #__users on (#__puarcade.userid = #__users.id) where #__puarcade.gameid = '$id1' order by #__puarcade.score ".$order." limit ".$scorelimit;
$database->setQuery( $query );
$Scores = $database->loadObjectList();
echo "<table width=100% border=0 cellspacing=0 cellpadding=1><tr><td align=center>";
echo "<center>";
echo "<a href=".sefRelToAbs("index.php?option=com_puarcade&Itemid=".$arcadeItemid."&gid=".$Game[2])."><img src=".$livesite."/components/images/".$Game[0]." border=0 height=50 width=50></a><br />";
echo "<a href=".sefRelToAbs("index.php?option=com_puarcade&Itemid=".$arcadeItemid."&gid=".$Game[2])."><b>".$Game[1]."</b></a></center></td></tr>";
echo "<tr><td align=left><table width=100% border=0 cellspacing=0 cellpadding=1>";
$i=0;
foreach ($Scores as $Score) {
$i++;
if ($Score->userid == "0") {
$name = $guest_name;
} else {
$name = $Score->username;
if ($pu_scorelink == '1') {
$name='<a href='.sefRelToAbs('index.php?option=com_comprofiler&task=userProfile&user='.$Score->userid).'>'.$Score->username.'</a>';
}
}
echo "<tr>";
echo "<td>".PUA_NAME." : <b>".$name."</b></td>";
echo "<td rowspan=2><img src=\"".$mainframe->getCfg('live_site')."/img/pua/sokal".$i.".gif\" /></td>";
echo "</tr>";
echo "<tr>";
echo "<td>".PUA_SCORE.": <a href=".sefRelToAbs("index.php?option=com_puarcade&Itemid=".$arcadeItemid."&arcade=scores&gname=".$Game[4]).">".$Score->score."</a></td>";
echo "</tr>";
}
echo "</table></td></tr></table>";
?> |
Hey grazie ancora per la pazienza |
|
| Torna in cima |
|
|
Coach
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4546
Località: Verona
|
Oggetto:
Inviato: 29.11.07 | 12:14 |
|
|
mmm, id non è un numero?
Perchè lo metti tra apici?
Una riga sotto alla query prova a fare un echo... per verificarla: echo $query
Così vedi realmente la query come viene chiamata e puoi provarla direttamente sul DB.
Hai un'interfaccia tipo PhpMyAdmin?
. ____________________________________________________________
Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE! |
|
| Torna in cima |
|
|
AngaraT
intermedio


Registrato: 23/03/04 21:10
Messaggi: 152
|
Oggetto:
Inviato: 29.11.07 | 13:14 |
|
|
anche se non sono molto pratico ed ho la febbre, ma se fai un WHERE sull' id difficilmente puoi fare un ORDER BY
[$query = "SELECT imagename, title, id, reverse_score, gamename FROM #__puarcade_games WHERE id = '$id1' ORDER by rand() LIMIT 1";]
[edit]cmq per vedere se è quello il problema puoi fare un mysql_num_rows per vedere quanti record restituisce il SELECT [/edit]
Ultima modifica di AngaraT il 29.11.07 | 13:23, modificato 1 volta in totale |
|
| Torna in cima |
|
|
Coach
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4546
Località: Verona
|
Oggetto:
Inviato: 29.11.07 | 13:19 |
|
|
AngarT, probabile che sia quello il problema... ma non avendo specificato A.C che l'id era univoco... pensavo sapesse quello che chiedeva :)
. ____________________________________________________________
Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE! |
|
| Torna in cima |
|
|
A.C
nuovo utente

Registrato: 26/11/07 15:48
Messaggi: 6
|
|
| Torna in cima |
|
|
AngaraT
intermedio


Registrato: 23/03/04 21:10
Messaggi: 152
|
Oggetto:
Inviato: 01.12.07 | 21:13 |
|
|
| spero tu abbia risolto altrimenti ti consiglio di eliminare WHERE id = '$id1' |
|
| Torna in cima |
|
|
A.C
nuovo utente

Registrato: 26/11/07 15:48
Messaggi: 6
|
Oggetto:
Inviato: 03.12.07 | 16:03 |
|
|
OK allora
Mitici ora togliendo WHERE id = '$id1' l'immagine viene presa random eun passo è fatto!
Ora però la parte + complessa:
coome potete vedere lo scipt fa questo:
prende immagine, i primi 3 punteggi del gioco in questione con gli utenti che li hanno fatto.
Ho provato a mettere Order by rand ma, ovviamente mi prende a caso il punteggio e il nome utente, che non sono dell gico in questione.
Avete altri 2 minuti di pazienza?
Grazie ancora! |
|
| Torna in cima |
|
|
AngaraT
intermedio


Registrato: 23/03/04 21:10
Messaggi: 152
|
|
| Torna in cima |
|
|
|