Newsgroup: it.comp.www.php
Titolo: [REPOST]numero casuale...

Ho letto nel manuale cosa fa  la funzione do...while,lì dice che controlla
il valore dell'espressione dopo la fine del ciclo,quindi prima stamnpa il
numero e poi controlla se è inserito già nella tabella,menre a me serve un
qualcosa che controlla se il numero è inserito già nella tabela e in caso
affermativo selezioni un altro numero casuale,altrimenti stampi il
numero...come posso fare?!ciao!!!!!!!!!!!!!!
--
Cerchi qualche programma o gioco(pc & psx) o Divx masterizzato?
vieni su 
http://italianwarez.2ya.com
e ordina le tue copie!

 numero...come posso fare?!ciao!!!!!!!!!!!!!!
if - else ?
Emanuele

 numero...come posso fare?!ciao!!!!!!!!!!!!!!
Forse non era chiaro il flusso.
Se non hai ancora tirato il dado non puoi controllare se esiste gia' il
numero tirato:
do {
    ndado=tira dado; // tira il dado
} while (ndado in tabella); // vedi se il dado ha dato un buon risultato
inserisci ndado; // inserisci l'ultimo tiro del dado.
<? // esempio pratico, completo
$tbl=array();
function tira(&$tbl)
{
    do {
        $dado=rand(1,6);
    } while (in_array($dado, $tbl)); // potrebbe mai terminare
    $tbl[]=$dado;
}
tira($tbl);
tira($tbl);
tira($tbl);
tira($tbl);
echo "<PRE>\n";
print_r($tbl);
echo "</PRE>\n";
?>

 ha scritto nel
messaggio news:kL1E8.56888$5k4.1...@twister2.libero.it...


 p.s.scusa Jurgen ho sbagliato a mandarlo!
Prova l'esempio di prima, magari riesci a capire cosa succede:
Un po' esteso con output
<?
$tbl=array();
function tira(&$tbl) {
    do { // ripeti qui
        $dado=rand(1,6);
        echo "dado tirato: $dado<br>\n";
        $nonValido=in_array($dado, $tbl);
        if ($nonValido)
            echo "  c'e' gia'<br>\n";
    } while ($nonValido); // prova finche' valido
    echo "  L'ultimo tiro e' stato inserito<br>\n";
    $tbl[]=$dado;
}
tira($tbl);
tira($tbl);
tira($tbl);
tira($tbl);
tira($tbl);
echo "I dati presente nella tabella sono:<BR>\n<PRE>\n";
print_r($tbl);
echo "</PRE>\n";
?>
P.S.: Leggi anche un attimo la FAQ 
www.dopoil.com/PHP/mfaq.php

 ha scritto nel
messaggio news:cO8E8.58878$5k4.1...@twister2.libero.it...


 ha scritto nel
messaggio news:fd9E8.59310$US3.1...@twister1.libero.it...
| l'ho provato prima e ho capito che cosě sceglie il numero dopodichč
verifica
| se č presente nell'array(se non lo č lo inserisce),ma io devov erificare
se
| č presente nella tabella...come fare?.......
al posto di guardare nell'array fa un bel select
* from tabella where nDado= valoreRandomCalcolato.
poi controlli se ha record...
--
[ Penguin At Work ]
-> 
http://web.tiscali.it/penguinatwork/
-> aka Fustino Di Dixan while working

 č presente nella tabella...come fare?.......
Intendi una tabella mysql?
cambio un po' l'implementazione, la logica rimane...
do {
   $dado=rand(1,1000);
   $rslt=mysql_query("SELECT COUNT(*) FROM tbl WHERE dado=$dado")
         or die(mysql_error());
   $esiste=mysql_result($rslt,0);
   if (!$esiste) {
       $rslt=mysql_query("INSERT INTO tbl (dado) VALUES($dado)")
             or die(mysql_error());
       echo "inserito il numero $dado";
   }
} while ($esiste);
(non provato)
HTH
Ju

 ha scritto nel
messaggio news:fn9E8.59009$5k4.1...@twister2.libero.it...


 bene....thanks!ciao!
Si, perfetto.
do {
  <statement1>
} while(condizione);
// torna al primo statement dopo il 'do' se la condizione e true
P.S.: Comincia magari a quotare meglio (vedi anche la FAQ che avevo
indicato)...

 indicato)...
Si scusa ma ieri sera scrivevo di fretta!

 ha scritto nel
messaggio news:71rE8.61766$US3.1...@twister1.libero.it...
| Allora mi spieghi un'altra cosa?(che rompi che sono)ho letto nel manuale
la
| funzione mysql_result ma non l'ho capito per niente(non riesco a trovarla
in
| italiano!)mi puoi spiegare?thanks!
| QUESTA!>>>>   $esiste=mysql_result($rslt,0);
io non sono 1 mago del php e non ci smanetto molto
ma mysql_result non ha 3 parametri?
1- oggetto risultato della query
2- numero della riga
3- nome della colonna da leggere
???
in pratica se lo butti in un for $i sarebbe:
mysql_result($rsLista, $i, "nomeCampo")
saluti... e se ho sbagliato picchiatemi. :)


 saluti... e se ho sbagliato picchiatemi. :)
ehm...beh non l'ho postata io la query,x questo ho chiesto chiarimenti!mi
dici anche una cosa?comef accio a far mettere la firma in basso al messaggio
anche q1uando rispondo a un altro msg che ogni volta la mette in
alto!!!???ciao!

alto!!!???ciao!
Usa un altro newsreader al posto di outlook, ad esempio
free-agent.
Bonf

 ha scritto nel
messaggio news:RerE8.61818$US3.1...@twister1.libero.it...
| dici anche una cosa?comef accio a far mettere la firma in basso al
messaggio
| anche q1uando rispondo a un altro msg che ogni volta la mette in
| alto!!!???ciao!
allora, qua al lavoro uso outmerdina express(amente
sconsigliato) e per mettere la firma vai in:
strumenti->opzioni->(scheda) firma
... a casa uso il pinguino con kmail (lo so lo so che
kde e' un gigante, ma mi piace!) e non c'e' paragone
con sto coso
saluti
