Newsgroup: it.comp.www.php
Titolo: perche' mi ritorna un errore?

lo script genera l'errore:
Warning: mysql_fetch_assoc(): 2 is not a valid MySQL result resource in
c:\programmi\easyphp\www\esperimenti\mysql\articoli\prova_1.php on line
29
Questo e' lo script:
<?php require_once('Connections/prova1.php');
$maxRows_rsProva = 10;
$pageNum_rsProva = 0;
if (isset($HTTP_GET_VARS['pageNum_rsProva'])) {
  $pageNum_rsProva = $HTTP_GET_VARS['pageNum_rsProva'];
}
$startRow_rsProva = $pageNum_rsProva * $maxRows_rsProva;
mysql_select_db($database_prova1, $prova1);
$query_rsProva = "SELECT * FROM news";
$query_limit_rsProva = sprintf("%s LIMIT %d, %d", $query_rsProva,
$startRow_rsProva, $maxRows_rsProva);
$rsProva = mysql_query($query_limit_rsProva, $prova1) or
die(mysql_error());
$row_rsProva = mysql_fetch_assoc($rsProva);
if (isset($HTTP_GET_VARS['totalRows_rsProva'])) {
  $totalRows_rsProva = $HTTP_GET_VARS['totalRows_rsProva'];
} else {
  $all_rsProva = mysql_query($query_rsProva);
  $totalRows_rsProva = mysql_num_rows($all_rsProva);
}
$totalPages_rsProva = ceil($totalRows_rsProva/$maxRows_rsProva)-1;
mysql_free_result($rsProva);
?>
<table border="1">
<tr><td>TITOLO</td></tr>
<tr>
<?php do { ?>
<td><?php echo $row_rsProva['titolo']; ?></td>
<?php } while ($row_rsProva = mysql_fetch_assoc($rsProva)); ?>
</tr>
</table>
Qualcuno mi aiuta a capire perche' c'e' questo errore?
Grazie
Matteo

 Qualcuno mi aiuta a capire perche' c'e' questo errore?
la connessione dove la fai?
leggi la FAQ:
http://php.dopoil.com/faq.php?mysqlResultError
ciao
-- 
punkarruso

Scusate, ma ogni tanto è più forte di me! :-))
--
73 de IK2VTJ, Piero.
http://www.ardf.it
 , 
http://www.qsl.net/ik2vtj
Togli/Remove 'NONVOGLIOSPAM' dall'indirizzo/from address

 Scusate, ma ogni tanto è più forte di me! :-))
In se la battuta era anche carina. Se magari di degnavi anche di dare
un'occhiata al codice e dire la tua avresti fatto doppia bella figura...
Grazie lo stesso :-)))
Matteo

 punkarruso
Grazie mille dell'aiuto
Matteo

 Matteo
Forse non ho risposto, proprio per non annullare la figura 'bellina' della
battuta! :-)
E contavo su risposte più qualificate della mia.
Comunque, visto che non hai ancora risolto, ci provo.
Non conosco le funzioni di 'mysql_fetch_assoc()', ma mi sembra di capire che
il parametro che gli passi ($rsProva) dia come risultato 2 e, se sapessi
cosa fa ...assoc(), ti direi che non esiste nessun assoc(2).
Ora vado a documentarmi su quella query e se ancora necessario, ritorno!


 Ora vado a documentarmi su quella query e se ancora necessario,
ritorno!
Grazie mille.
Ora vado a documentarmi anch'io e domani posto la soluzione!!!
Ciao e a presto
Matteo


Rieccomi. Più o meno confermo quanto detto prima.
L'errore dovrebbe esser causato dal risultato della query $rsProva. Questo
dovrebbe essere 'null', cioè non ha trovato niente, anche se non capisco il
2 nel messaggio d'errore.
Se $rsProva è vuoto, la mysql_fetch_assoc() ti da errore perchè non ha
niente su cui lavorare.
Non essendo affatto sicuro di quanto detto, ti suggerisco di controllare con
una echo l'effettiva query che mandi:
$rsProva = mysql_query($query_limit_rsProva, $prova1) or
die(mysql_error());
echo $rsProva ;
Il risultato potrebbe essere diverso da quello che ti aspetti, magari per la
mancanza o la presenza di 'apici' in più o meno.
Se la query corrisponde a quella voluta, prova ad inviarla in modo line
command o con altro gestore di Mysql e vedi se trova dei risultati o no.
Non mi viene in mente altro.
Facci sapere se risolvi e, quindi, puoi perdonare la battuta! :-)


  mysql_free_result($rsProva);
e 7 righe dopo
while ($row_rsProva = mysql_fetch_assoc($rsProva));
ovviamente non puo' funzionare perche' hai gia disallocato il tuo risultato.


Ahhh! Io mi fermavo alla prima istanza di 'mysql_fetch_assoc($rsProva)'...
credevo che l'errore fosse lě!


 ovviamente non puo' funzionare perche' hai gia disallocato il tuo
risultato.
Quasi (anzi, senza il quasi) mi vergogno della banalita' dell'errore.
Infatti e' bastato spostare il free_result dopo il ciclo do e tutto e'
andato a posto.
Vi ringrazio per il tempo dedicatomi, ora torno a studiare.
Matteo
PS x Piero: una battuta non ha mai bisogno di essere perdonata :-))