Warning: mysql_num_rows() expects parameter 1 to be resource, array given in

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Salve ragazzi,

Mi dite cosa c'è che non gli piace ??? Mi segnala il seguente errore:

Warning: mysql_num_rows() expects parameter 1 to be resource, array given in


PHP:
<?php
session_start();

require_once("protezionepag.php");
 
echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">'; 

session_start();

if(isset($_SESSION['nome'])) {
$array = mysql_query("SELECT * FROM utenti WHERE id=".$_SESSION['id']." '");

$array =  strtoupper($_SESSION['nome'] );

 $datadinascita = $anno . "-" . $mese . "-" . $giorno;     
// Ricerca e visualizza l'utente che si è connesso con le info

$array = mysql_fetch_array(mysql_query("SELECT * FROM utenti WHERE id='".$_SESSION['id']."'"));
if(mysql_num_rows($array) > 0){

echo "<br> <br>";

echo $id." ".$array;
echo $datadinascita." ".$citta." ".$provincia." ";
}
}
?>

Inoltre dalla pagina dove viene visualizzato i dati da inserire non li trasmette al file aaggiornaprofilo.php Come mai ????
 
Semplice, tu gli passi il risultato di mysql_fetch_array() che ritorna il rispettivo record come array non la query, quindi è sufficiente che gli passi il risultato di mysql_query() togliendo il fetch_array
 
Ciao

Correggimi se sbaglio per favore. Intendi così:

PHP:
$datadinascita = $anno . "-" . $mese . "-" . $giorno;     
// Ricerca e visualizza l'utente che si è connesso con le info

$array = mysql_query("SELECT * FROM utenti WHERE id='".$_SESSION['id']."'");
if(mysql_num_rows($array) > 0){

Poi nel postare mi sono accorto che mancava la parte dell'update, ecco perchè i campi risultavano vuoti. Comunque ho sbagliato ????
 
Ciao

Ho modificato un pochino il codice ma tanto pare che non vada. Perchè mi da ils eguente errore:

UPDATE utenti SET datadinascita='--', citta='', provincia='', anno_diploma='' WHERE session_id = 'ds2aar64gc5alc74751bbuhve3'Errore: Non è stato possibile effettuare l'aggiornamento richiesto

PHP:
<?php
session_start();

require_once("protezionepag.php");
 
echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">'; 

session_start();

if(isset($_SESSION['nome'])) {
    

$array = mysql_query("SELECT * FROM utenti WHERE id=".$_SESSION['id']." '");
echo $array;

$datadinascita = $anno . "-" . $mese . "-" . $giorno;   
 $session_id = session_id();
 
echo "<h1> Esecuzione in corso dell'aggiornameto profilo... </h1>"; 


$qry = "UPDATE utenti SET 
    datadinascita='$datadinascita', 
    citta='$citta', 
    provincia='$provincia', 
    anno_diploma='$anno_diploma' 
  WHERE session_id = '$session_id'";
echo $qry;

if (mysql_query($quy)){ 
    echo "... Aggiornamento effettuato correttamente...."; 
} else { 
    echo "Errore: Non è stato possibile effettuare l'aggiornamento richiesto";

}
}
   
?>

Tutti i dati che gli ho inserito non li passa nell'aggiornamentoprofilo. A questo punto non riesco più a capirci niente :(

P.S.: Dimenticavo, mi restituisce il seguente messaggio:

BENVENUTO FABIO

Esecuzione in corso dell'aggiornameto profilo...
UPDATE utenti SET datadinascita='--', citta='', provincia='', anno_diploma='' WHERE session_id = 'ds2aar64gc5alc74751bbuhve3'Errore: Non è stato possibile effettuare l'aggiornamento richiesto
 
Ultima modifica:
Per forza, quei campi non vengono presi da nessuna parte, forse ti sei scordato la parte di script dove venivano esportate le variabili, oppure di settarle da normali variabili $_POST, comunque si è corretto l'altro (come procedimento)


Infatti nella query stampata lo noti chiaramente che i campi di update sono vuoti
 
Ciao

Quindi secondo te con dei post riesco a risolvere il problema ?????

Del tipo:

PHP:
$datadinascita = $anno . "-" . $mese . "-" . $giorno;  
 $citta = mysql_real_escape_string(strtolower(trim ($_POST['citta'])));
 $provincia = mysql_real_escape_string(strtolower(trim ($_POST['provincia'])));

Se non ho capito male dovrebbe venire in questo modo:


PHP:
<?php
require_once("connetti.php"); 

echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">'; 

echo "<h1> Esecuzione in corso dell'aggiornameto profilo... </h1>"; 
 
$datadinascita = $anno . "-" . $mese . "-" . $giorno;  
 $citta = mysql_real_escape_string(strtolower(trim ($_POST['citta'])));
 $provincia = mysql_real_escape_string(strtolower(trim ($_POST['provincia'])));

 $qry = "UPDATE utenti SET 
    datadinascita='$datadinascita', 
    citta='$citta', 
    provincia='$provincia', 
    anno_diploma='$anno_diploma' 
    WHERE email = '[email protected]'";  

 

if (mysql_query($qry)){ 
    echo "... Aggiornamento effettuato correttamente...."; 
     echo $qry;
} else { 
    echo "Errore: Non è stato possibile effettuare l'aggiornamento richiesto" or die (mysql_error()); 


}   
?>

Giusto ??? Se è sbagliato correggimi per favore. Grazie. vado a cena. Ci sentiamo sul tablet. Provato ora, ma mi restituisce sempre questo:

Esecuzione in corso dell'aggiornameto profilo...
... Aggiornamento effettuato correttamente....UPDATE utenti SET datadinascita='--', citta='', provincia='', anno_diploma='' WHERE email = '[email protected]'
 
Mi pare ti avevo già scritto come esportarli tutti, infatti l'altra volta gli avevi, comunque lo devi fare per tutti i campi quel lavoro
 
ciao

Ciao,


Allora se non ti di spiace, domani mi puoi dare una mano a rivedere il tutto ??? Credo di essermi incasinato alla grande.... Mi avevi detto di provare a mettere la mia email giusto ???? Ho provato e funzionava. Però, modificava solo il mio account e fovevo risolvere questo che ancora non ci sono riuscito
 
Ciao,


Allora se non ti di spiace, domani mi puoi dare una mano a rivedere il tutto ??? Credo di essermi incasinato alla grande.... Mi avevi detto di provare a mettere la mia email giusto ???? Ho provato e funzionava. Però, modificava solo il mio account e fovevo risolvere questo che ancora non ci sono riuscito
La mail la dovevi mettere in una sessione quando l'user si logga o conferma la registrazione


Per la revisione si ti posso aiutare ma ti ripeto (come nei topic precedenti) è una struttura incasinata e veramente poco dinamica, dovresti prima organizzare una logica di quello che fai non linea per linea

Comunque ho ritrovato la parte di codice che ti avevo messo, che modifiche hai fatto, perché l'hai tolta?
PHP:
foreach($_POST as $key => $value) $_POST[$key] = mysql_real_escape_string(strtolower(trim ($value))); 

extract($_POST,EXTR_SKIP);

Inoltre manca un controllo sull'user se è loggato tramite la sessione e un controllo sulla validità delle variabili (se esistono, come sono, lunghezza, il formato, etc...)
 

Discussioni simili