Forum Flash, Actionscript, PHP e MySQL
random funzione su ID
Vai a pagina 1, 2  »
 
Nuovo Topic   Rispondi    Forum Flash, Actionscript, PHP e MySQL » PHP
Precedente  Successivo 
Autore Messaggio
davidale
nuovo utente
nuovo utente



Registrato: 08/11/07 16:51
Messaggi: 7

MessaggioOggetto: random funzione su ID
Inviato: 08.11.07 | 16:54
Rispondi citando

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


Shock Shoked
Torna in cima
Profilo Messaggio privato  
Sponsor
AngaraT
intermedio
intermedio



Registrato: 23/03/04 21:10
Messaggi: 152

MessaggioOggetto:
Inviato: 08.11.07 | 17:45
Rispondi citando

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
Profilo Messaggio privato  
davidale
nuovo utente
nuovo utente



Registrato: 08/11/07 16:51
Messaggi: 7

MessaggioOggetto:
Inviato: 09.11.07 | 12:20
Rispondi citando

si infatti ho risolto così...era una domanda abb. facile .... Mr. Green Mr. Green Mr. Green

grazie 1000 lo stesso...
Torna in cima
Profilo Messaggio privato  
A.C
nuovo utente
nuovo utente



Registrato: 26/11/07 15:48
Messaggi: 6

MessaggioOggetto:
Inviato: 26.11.07 | 15:53
Rispondi citando

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
Profilo Messaggio privato  
Coach
amministratore
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4546
Località: Verona

MessaggioOggetto:
Inviato: 27.11.07 | 19:59
Rispondi citando

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
Profilo Messaggio privato [ Nascosto ] HomePage Yahoo Messenger MSN Messenger Skype
A.C
nuovo utente
nuovo utente



Registrato: 26/11/07 15:48
Messaggi: 6

MessaggioOggetto:
Inviato: 29.11.07 | 00:06
Rispondi citando

Ok sputatemi, ma non capisco come usalrla nel codice.... Shoked
Torna in cima
Profilo Messaggio privato  
Coach
amministratore
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4546
Località: Verona

MessaggioOggetto:
Inviato: 29.11.07 | 02:39
Rispondi citando

Anche se semplice da capire con tanto di esempio fatto, devi fare così:
 
Codice:
<?php
$query 
"SELECT imagename, title, id, reverse_score, gamename 
   FROM #__puarcade_games 
   WHERE id = $id1
   ORDER by rand()
   LIMIT 1"
;
?>

____________________________________________________________


Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE!
Torna in cima
Profilo Messaggio privato [ Nascosto ] HomePage Yahoo Messenger MSN Messenger Skype
A.C
nuovo utente
nuovo utente



Registrato: 26/11/07 15:48
Messaggi: 6

MessaggioOggetto:
Inviato: 29.11.07 | 12:09
Rispondi citando

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
Profilo Messaggio privato  
Coach
amministratore
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4546
Località: Verona

MessaggioOggetto:
Inviato: 29.11.07 | 12:14
Rispondi citando

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
Profilo Messaggio privato [ Nascosto ] HomePage Yahoo Messenger MSN Messenger Skype
AngaraT
intermedio
intermedio



Registrato: 23/03/04 21:10
Messaggi: 152

MessaggioOggetto:
Inviato: 29.11.07 | 13:14
Rispondi citando

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
Profilo Messaggio privato  
Coach
amministratore
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4546
Località: Verona

MessaggioOggetto:
Inviato: 29.11.07 | 13:19
Rispondi citando

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
Profilo Messaggio privato [ Nascosto ] HomePage Yahoo Messenger MSN Messenger Skype
A.C
nuovo utente
nuovo utente



Registrato: 26/11/07 15:48
Messaggi: 6

MessaggioOggetto:
Inviato: 29.11.07 | 17:32
Rispondi citando

Grazie ancora per l'aiuto,
allora

ho fatto l'echo ed ecco il risultato:

 
Codice:
SELECT imagename, title, id, reverse_score, gamename FROM #__puarcade_games WHERE id = '3' ORDER by rand() LIMIT 1


si ho accesso al phpmy admin ma come avrete capito ci capisco pochissimo quindi devo esser accompagnato passo passo.

Shock
Torna in cima
Profilo Messaggio privato  
AngaraT
intermedio
intermedio



Registrato: 23/03/04 21:10
Messaggi: 152

MessaggioOggetto:
Inviato: 01.12.07 | 21:13
Rispondi citando

spero tu abbia risolto altrimenti ti consiglio di eliminare WHERE id = '$id1'
Torna in cima
Profilo Messaggio privato  
A.C
nuovo utente
nuovo utente



Registrato: 26/11/07 15:48
Messaggi: 6

MessaggioOggetto:
Inviato: 03.12.07 | 16:03
Rispondi citando

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
Profilo Messaggio privato  
AngaraT
intermedio
intermedio



Registrato: 23/03/04 21:10
Messaggi: 152

MessaggioOggetto:
Inviato: 03.12.07 | 16:56
Rispondi citando

Forse lo strano comportamento risiede nel fatto che tali dati li prendi con un'altra query, modificando anche la seconda query con order by rand giustamente non prendi i dati associati all'id del gioco selezionato...


potresti provare modificando la seconda query come segue:
- $res_gioco = mysql_fetch_array($query) -> mi piglio i dati del record selezionato con la 1° query in un array
- ...where #__puarcade.gameid = '".$res_gioco['id']."'... -> faccio il where con il gameid = all'id del gioco selezionato precedentemente

 
Codice:
<?php 
...
...
...

$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"

$res_gioco mysql_fetch_array($query);

$query "Select #__puarcade.score,#__users.username,#__puarcade.userid from #__puarcade left join #__users on (#__puarcade.userid = #__users.id) where #__puarcade.gameid = '".$res_gioco['id']."' order by #__puarcade.score ".$order." limit ".$scorelimit;

...
...
...

?>


prova, spero che vada, tieni presente che non avendo il tuo cms sotto mano e non conoscendo la struttura del db vado a naso e son pure INFLUENZATO! Very Happy



.
Torna in cima
Profilo Messaggio privato  
Mostra prima i messaggi di:   
Nuovo Topic   Rispondi    Forum Flash, Actionscript, PHP e MySQL » PHP Tutti i fusi orari sono GMT + 2 ore
Vai a pagina 1, 2  »
Pagina 1 di 2

Discussioni Simili
Topic Autore Forum Risposte Ultimo Messaggio
Nessun nuovo messaggio Funzione random VinS ActionScript & Server Side 2 26.08.05 | 12:28 Leggi gli ultimi messaggi
VinS
Nessun nuovo messaggio funzione random a coppie mesk8 ActionScript & Server Side 5 30.03.07 | 12:54 Leggi gli ultimi messaggi
Coach
Nessun nuovo messaggio mySQL e php funzione random su un mys... KevinPirola PHP 1 24.01.07 | 17:04 Leggi gli ultimi messaggi
Coach
Nessun nuovo messaggio Random() cli ActionScript & Server Side 5 18.05.04 | 20:22 Leggi gli ultimi messaggi
dioz
Nessun nuovo messaggio [AS2] estrapolare 10 nodi a random da... 10k_dev ActionScript & Server Side 2 14.05.08 | 13:30 Leggi gli ultimi messaggi
10k_dev



 
Vai a:  
Non puoi inserire nuovi Topic in questo forum
Non puoi rispondere ai Topic in questo forum
Non puoi modificare i tuoi messaggi in questo forum
Non puoi cancellare i tuoi messaggi in questo forum
Non puoi votare nei sondaggi in questo forum
Non puoi allegare files in questo forum
Non puoi downloadare gli allegati in questo forum



Powered by phpBB © 2001, 2002 phpBB Group - phpBB SEO Designed by coachdesign - © 2003-2005