Recupero dati con Warning

E rieccomi di nuovo qua :)

Stavolta si tratta di due Warning +un errore Notice. Praticamente alla fine di quest'ultima lezione ho riscritto il codice come al solito. I 3 errori sono i seguenti:

Warning: Wrong parameter count for mysql_num_rows() in C:\www\ricevuta.php on line 39

Notice: Undefined variable: result in C:\www\ricevuta.php on line 40

Warning: mysql_data_seek(): supplied argument is not a valid MySQL result resource in C:\www\ricevuta.php on line 40

Come sempre ho copiato tutto dalle lezioni, comunque sia il primo che l'ultimo nome dei dati estratti da dal database mi appaiono tranquillamente. Riporto il codice affinché possa esservi di ragguaglio:

<?php
$ricevuta = mysql_query("SELECT nome FROM utenti ORDER BY nome");
$row = mysql_fetch_assoc($ricevuta);
echo 'Primo nome: ', $row['nome'], "\n";
$numero_record = mysql_num_rows();
mysql_data_seek($result, $numero_record - 1);
$row = mysql_fetch_assoc($ricevuta);
echo 'Ultimo nome: ', $row['nome'], "\n";
?>

Dov'è che ho sbagliato stavolta? :O Grazie ancora per tutto :)

Dragodeicieli

inviato 10 anni fa
Dragodeicieli
X 0 X

da dove hai preso quell'esempio?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
da dove hai preso quell'esempio?

Sempre dalle lezioni su PHP/MySQL del vostro sito, lezione 6, ultimo o penultimo esempio. Faccio tutto lì :)

Saluti

Dragodeicieli

risposto 10 anni fa
Dragodeicieli
X 0 X

Hai ragione, c'è un errore. Cambia:

$numero_record = mysql_num_rows();

con

$numero_record = mysql_num_rows($ricevuta);

e

mysql_data_seek($result, $numero_record - 1);

con

mysql_data_seek($ricevuta, $numero_record - 1);

Fammi sapere se risolve il problema così correggo la lezione sul sito.  :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Ciao.

Ho seguito le tue istruzioni e ora tutto funziona. Grazie ancora :)

Dragodeicieli

P.S. Se dovessero capitare altri errori vi farò sapere :)

risposto 10 anni fa
Dragodeicieli
X 0 X

Senza che apro un altro post scrivo direttamente qua:  ho iniziato la lezione 7 del corso PHP/MYSQL e  dopo aver fatto come nell'esempio mi appare il seguente errore:

Notice: Array to string conversion in C:\www\ricevuta2.php on line 43

Fatal error: Call to undefined function: array() in C:\www\ricevuta2.php on line 43

per completezza riporto tutto lo script:

<?php
// richiamo il file di configurazione
require 'config.php';

// richiamo lo script responsabile della connessione a MySQL
require 'connect.php';

// preparo la query
$query = "SELECT nome,email,sesso,newsletter,attivita,messaggio FROM utenti";

// invio la query
$result = mysql_query($query);

// controllo l'esito
if (!$result)
{
die("Errore nellaquery $query: " . mysql_error());
}

$sesso_arr = array('$nbsp;','M','F');
$attivita_arr = array('$nbsp;','studente','lavoratore','disoccupato');

echo '
<TABLE BORDER="1">
<TR>
<TH>NOME</TH>
<TH>EMAIL</TH>
<TH>SESSO</TH>
<TH>NEWSLETTER</TH>
<TH>ATTIVIT&AGRAVE</TH>
</TR>';

while ($row = mysql_fetch_assoc($result))
{
$nome = htmlentities($row['nome']);
$email = htmlentities($row['email']);
$messaggio = htmlentities($row['messaggio']);
$messaggio = nl2br($messaggio);

if(!$email) $email = '&nbsp;';
if(!$messaggio) $messaggio = '&nbsp';

$sesso = $sesso_arr($row['sesso']);
$newsletter = $row['newsletter'] ? 'Si' : 'No';
$attivita = $attivita_arr[$row['attivita']];

echo "<tr>
      <td>$nome</td>
      <td>$email</td>
      <td>$sesso</td>
      <td>$newsletter</td>
      <td>$attivita</td>
      <td>$messaggio</td>
      </tr>
";
}

echo '</TABLE>';

// libero la memoria di PHP occupata dai record estratti con la SELECT
mysql_free_result($result);

// chiudo la connessione a MySQL
mysql_close();
?>

inoltre non mi appaiono i dati dal database creato. Cosa ho sbagliato? Grazie ancora :)

Dragodeicieli

risposto 10 anni fa
Dragodeicieli
X 0 X

per il primo errore devi correggere la riga

$sesso = $sesso_arr($row['sesso']);

in

$sesso = $sesso_arr[$row['sesso']];

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda