Newsgroup: it.comp.www.php
Titolo: Finestra lampeggiante .... in che cosa sbaglio?

Php 4.30
Apache 2.0.44
Mysql 3.23.55
Su WindowsXP PRO
Ho un Database con diversi campi (circa 15) e poco piů di 800 record.
Facevo delle prove di query e ho dei risultati strani.
Questa č la mia pagina di prova:
<?php 
$hostname_prova = "localhost";
$database_prova = "######";
$username_prova = "######";
$password_prova = "######";
//Apro la connessione e selezione il database.
$prova = mysql_pconnect($hostname_prova, $username_prova,
$password_prova) or die(mysql_error());
mysql_select_db("$database_prova", $prova) || die("Non riesco ad
aprire il database: $database_prova. L'errore avvenuto č (se ce ne
sono stati): ".mysql_error() );
//eseguo la query e metto i risultati in un array associativo
$query = "SELECT * FROM `studio_giannini`";
$result = mysql_query($query, $prova) or die("Fatal error:
".$query.mysql_error());
$row = mysql_fetch_assoc($result);
?>
<html>
<head>
<title>Prova.php</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
</head>
<body>
//eseguo un loop per stampare a video alcuni dei campi che
//mi interessano, tenete presente che č solo una prova.
<?php
do {
        printf ("<p><b>ID:</b> %s - <b>Name:</b> %s<br>", $row["id"],
$row["Posizione"]);
	printf ("Cliente: %s - Assistito: %s </p>", $row["Cliente"],
$row["Assistito"]);
    }
while ($row = mysql_fetch_assoc($result));
?>
<?php mysql_free_result($result);?>
</body>
</html>
Quando apro la pagina il browser sembra impazzire, entra in un loop e
la finestra "lampeggia" e alla fine si pianta.
Se diminuisco il testo stampato a video, tipo:
do {
        printf ("<p><b>ID:</b> %s - <b>Name:</b> %s<br>", $row["id"],
$row["Posizione"]);
    }
while ($row = mysql_fetch_assoc($result));
Allora la pagina appare correttamente.
Se apro il database con PhpMyAdmin non ho problemi a vedere tutti i
record che voglio nella finestra principale.
In piů se provo lo script sul mio spazio su Aruba, il tutto funziona
alla perfezione ...
Io non so da cosa possa dipendere qualche idea?
In cosa sbaglio?
Grazie.
Mogan

 Se diminuisco il testo stampato a video, tipo:
Pare strano...
Cmq. prova a mettere un \n alla fine del tuo printf, magari qualche buffer 
che non c'e' la fa (e M$ e' famoso per bug stack overflow ecc.).

...

Hum, il \n non funziona.
Per spiegarmi meglio:
Il problema č che il browser sembra caricare all'infinito la pagina,
infatti se apro il file access.log di apache mi appare una lunghissima
lista di
127.0.0.1 - - [17/May/2003:16:06:48 +0200] "GET /prova.php HTTP/1.1"
200 87439
Come se il browser non facesse altro che richiedere sempre la medesima
pagina "prova.php".
Quando eseguo la query da shell di mysql non c'č problema, se eseguo
la pagina su aruba l'unico problema che ho č che non riesce a finire
di disegnare la pagina perché il time limit per lo script č 30 sec.
Grazie
Mogan

 di disegnare la pagina perché il time limit per lo script è 30 sec.
prova con browsers differenti. se non si ripete il problema dovrebbe 
essere il browser.
poi prova ad utilizzare la print normale: (per prova)
print "<p><b>ID:</b> ".$row["id"]." - <b>Name:</b> 
".$row["Posizione"]."<br>";
print "Cliente: ".$row["Cliente"]." - Assistito: ".$row["Assistito"]." 
</p>";
poi occhio: usi un do-while, però devi testare il ritorno della prima 
fetch che potrebbe essere stata non valida.
-- 
punkarruso

 fetch che potrebbe essere stata non valida.
Cioč? Scusa l'ignoranza ;)
Ciauz
Mogan

 Cioč? Scusa l'ignoranza ;)
guarda il tuo codice:
$query = "SELECT * FROM `studio_giannini`";
$result = mysql_query($query, $prova) or die("Fatal error:
".$query.mysql_error()); //QUANTI RISULTATI TORNA????
$row = mysql_fetch_assoc($result); //SICURO DI AVERE ALMENO 1 RECORD???
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<snip static code>
<?php
do {
         printf ("<p><b>ID:</b> %s - <b>Name:</b> %s<br>", $row["id"],
$row["Posizione"]);
	printf ("Cliente: %s - Assistito: %s </p>", $row["Cliente"],
$row["Assistito"]);
     }
//se la prima fetch non č andata a buon fine, cosa stai stampando????
while ($row = mysql_fetch_assoc($result));
imho meglio il classico
while($row=mysql_fetch_assoc($result)) {
	do_some_stuff();
}
ciao
-- 
punkarruso