mysql_num_rows() expects parameter 1 to be resource, boolean given

Sembra essersi risolto utilizzando questa modalità

PHP:
$inviautentitemp = $mysqli->query("INSERT INTO ........)
if ($inviautentitemp){
faccio la mail

non capisco come mai da qualche tempo non possa più utilizzare il "vecchio" mysql_query ma debba usare la nuova versione mysqli.
 
adesso il problema ce l'ho con questa riga di codice.
PHP:
$sqlconfermauser = "INSERT INTO biblionet nuova ok (username, email, nome, cognome, eta, interessi, password) VALUES ('$username', '$email', '$nome', '$cognome', '$eta', $interessi', '$passwordcript'";
var_dump($sqlconfermauser);
if ($sqlconfermauser == 1){ messaggio di benvenuto

il var_dump mi dice bool(false) e anche inserendo i dati con mysqli non vengono inseriti nel db, qui il codice intero ella pagina di benvenuto
PHP:
<?php
		if(isset($_GET['passkey'])){

				$passkey = htmlspecialchars($_GET['passkey']);
			
				//$sqlrecuperauser = $mysqli->query("SELECT * FROM utenti_temp WHERE codiceconferma = '$passkey'");
				//$risultatouser = mysql_query($sqlrecuperauser);
			
				if ($sqlrecuperauser = $mysqli->query("SELECT * FROM utenti_temp WHERE codiceconferma = '$passkey'"));{
					$contauser = (($sqlrecuperauser->num_rows) == 1);
				

				//if($risultatouser) {
				//	$contauser = mysql_num_rows($risultatouser);
				//if($contauser == 1){

						$rows = mysqli_fetch_array($sqlrecuperauser);
						$nome = $rows ['nome'];
						$cognome = $rows ['cognome'];
						$eta = $rows ['eta'];
						$username = $rows['username'];
						$email = $rows['email'];
						$interessi = $rows ['interessi'];
						$password = $rows ['password'];

						$passwordcript = md5($password);

						$sqlconfermauser = "INSERT INTO biblionet nuova ok (username, email, nome, cognome, eta, interessi, password) VALUES ('$username', '$email', '$nome', '$cognome', '$eta', $interessi', '$passwordcript'";
						var_dump($sqlconfermauser);
					
						if ($sqlconfermauser == 1) {

							echo '<div id="benvenuto">
					        <p><h3>Benvenuto '.$username.' nel gruppo Biblionet</h3></p>
					        Il tuo account è stato attivato da adesso potrai accedere completamente al sito cliccando sulla voce "Entra" e partecipare alle nostre iniziative.
					        Ti ricordiamo che l\'iscrizione  gratuita, e che per ogni esigenza o problema
							 lo <a href="images/GRUPPO%20BIBLIONET.jpg" class="staff" img="images/GRUPPO%20BIBLIONET.jpg">Staff</a>
							 e gli animatori sono a tua disposizione.
					        Ti auguriamo un buon 2013, ed una navigazione divertente e piacevole.
					        </div>';

								$sqleliminadati = $mysqli->query("DELETE FROM utenti_temp WHERE codiceconferma = '$passkey'");

							} else {

								echo '<div id="errore"><p><h3>Probabilmente qualcosa &egrave; andato storto, riprova e se noti che il problema continua,
								avvisaci che provvederemo a sistemarlo. Grazie dallo staff Biblionet</h3></p></div>';
								echo "<meta http-equiv='Refresh' content='3000; URL=Newindex.php'>";
								}
					
						}
					
						} else {
								echo '<div id="errore"><p><h3>Probabilmente qualcosa &egrave; andato storto, riprova e se noti che il problema continua,
									avvisaci che provvederemo a sistemarlo. Grazie dallo staff Biblionet 3</h3></p></div>';
						}


					//echo "C'è stato un errore, se hai sbagliato qualcosa riprova, altrimenti segnalacelo. Lo correggeremo il prima possibile!";
					//echo "<meta http-equiv='Refresh' content='300; URL=Newindex.php'>";
				


?>

mi sapresti dire se è corretto? io non ho errori in php. Grazie
 
Ti sei dimenticato di eseguire la query, inoltre controlla i valori che ricavi dal fetch



Ti consiglio di utilizzare una sola tabella per gli utenti e di basarti su un semplice campo int per lo status dell'user (se confermato o meno) facendo l'update
 
Ultima modifica:
ciao
no intendo qualcosa tipo
Codice:
id 	int(12) 	No  	  	 
data_locale 	int(12) 	No  	  	 
nome 	varchar(50) 	No  	  	 
citta 	varchar(50) 	No  	  	 
email 	varchar(250) 	No  	  	 
ip 	varchar(20) 	No  	  	 
bandierina 	varchar(50) 	No  	  	 
messaggio 	text 	No  	  	 


Indexes:
Keyname 	Type 	Cardinality 	Field
PRIMARY 	PRIMARY 	0  	id
 
Ti sei dimenticato di eseguire la query, inoltre controlla i valori che ricavi dal fetch



Ti consiglio di utilizzare una sola tabella per gli utenti e di basarti su un semplice campo int per lo status dell'user (se confermato o meno) facendo l'update

Intanto grazie! Mi sapresti dire qualcosa di più preciso? Dove la dovrei inserire la query? mi fai un esempio.
Non avendo molta dimestichezza con il php avrei bisogno di qualche esempio.

Grazie:book::book:
 
ciao
visto che stai usando msqli prova
PHP:
<?php
//....
$row = $sqlrecuperauser->fetch_array(MYSQLI_ASSOC);
//.....
?>

non è che ci capisca molto anch'io, visto che stanno incasinando un linguaggio che alla sua nascita era di estrema facilità.
ma si sa: ai guru da sempre fastio che i poveri mortali ne sappiano quanto loro

p.s.
al massimo non funziona
 
ciao
visto che stai usando msqli prova
PHP:
<?php
//....
$row = $sqlrecuperauser->fetch_array(MYSQLI_ASSOC);
//.....
?>

non è che ci capisca molto anch'io, visto che stanno incasinando un linguaggio che alla sua nascita era di estrema facilità.
ma si sa: ai guru da sempre fastio che i poveri mortali ne sappiano quanto loro

p.s.
al massimo non funziona

Ti confermo che non funziona.
Ho messo un var_dump qua
PHP:
if(isset($_GET['passkey'])){

				$passkey = htmlspecialchars($_GET['passkey']);

				//$sqlrecuperauser = "SELECT * FROM utenti_temp WHERE codiceconferma = '$passkey'";
				//$risultatouser = mysql_query($sqlrecuperauser);
			$mysqli = new mysqli("localhost", "root", "simona", 'biblionet nuova ok');

				if ($sqlrecuperauser = $mysqli->query("SELECT * FROM utenti_temp WHERE codiceconferma = '$passkey'"));{
					$contauser = (($sqlrecuperauser->num_rows) == 1);
			 //(($risultatouser->num_rows) == 1);


				//if($risultatouser) {
				//	$contauser = mysql_num_rows($risultatouser);
					
					//if($contauser == 1){
						
					$rows = $sqlrecuperauser->fetch_array(MYSQLI_ASSOC);
					$nome = $rows ['nome'];
					$cognome = $rows ['cognome'];
					$eta = $rows ['eta'];
					$username = $rows['username'];
					$email = $rows['email'];
					$interessi = $rows ['interessi'];
					$password = $rows ['password'];

					$passwordcript = md5($password);

					$sqlconfermauser = "INSERT INTO biblionet nuova ok (username, email, nome, cognome, eta, interessi, password) VALUES ('$username', '$email', '$nome', '$cognome', '$eta', $interessi', '$passwordcript'";

					var_dump($sqlconfermauser);
                    
					if ($sqlconfermauser == 1) {
dopo l'inserimento nel db. ed i lrisultato è
PHP:
string(218) "INSERT INTO biblionet nuova ok (username, email, nome, cognome, eta, interessi, password) VALUES ('zzzzz', '[email protected]', 'ale', 'ole', '12121950', qaqaqaaqaq', '3506e1dff0db4e4d78412e2feb7c0a95'"

suggerimenti????
 
Avanti borgo, a parte che mysqli in procedurale è quasi uguale a mysql col pregio di essere più veloce ma poi anche ad oggetti non è mica tanto difficile da usare? Potrei capire pdo le prime volte ma mysqli via :ilpirata:


edit
PHP:
 $sqlconfermauser = $mysqli->query("INSERT INTO biblionet_nuova_ok (username, email, nome, cognome, eta, interessi, password) VALUES ('$username', '$email', '$nome', '$cognome', '$eta', $interessi', '$passwordcript')") or die($mysqli->error);
Paperino chiudi il values, esegui la query e vedi, inoltre il nome della tabella deve essere tutto attaccato
 
Ultima modifica:
Allora, ho rinominato la tabella inserendo gli underscore così adesso è "biblionet_nuova".
Adesso correggo tutti i valori ed ora in avanti non lascierò più spazi tra i nomi, così evito problemi! :crying:;);)
 
Dopo aver inserito

PHP:
or die($mysqli->error)

mi da questo errore
PHP:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '', '3506e1dff0db4e4d78412e2feb7c0a95')' at line 2

ed ora dove trovo vado???
 
Ci siamo dimenticati di un piccolo apostrofo prima di $interessi

PHP:
 $sqlconfermauser = $mysqli->query("INSERT INTO biblionet_nuova_ok (username, email, nome, cognome, eta, interessi, password) VALUES ('$username', '$email', '$nome', '$cognome', '$eta', '$interessi', '$passwordcript')") or die($mysqli->error);
 
Dopo aver inserito

PHP:
or die($mysqli->error)

mi da questo errore
PHP:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '', '3506e1dff0db4e4d78412e2feb7c0a95')' at line 2

ed ora dove trovo vado???

Problema risolto, così
PHP:
$sqlconfermauser = $mysqli->query("INSERT INTO biblionet_nuova_ok (username, email, nome, cognome, eta, interessi, password) VALUES ('$username', '$email', '$nome', '$cognome', '$eta', $interessi', '$passwordcript') or die ($mysqli->error)");

rimane sempre il problema del bool(false) inserendo un var_dump subito dopo
PHP:
var_dump($sqlconfermauser)
 
Problema risolto, così
PHP:
$sqlconfermauser = $mysqli->query("INSERT INTO biblionet_nuova_ok (username, email, nome, cognome, eta, interessi, password) VALUES ('$username', '$email', '$nome', '$cognome', '$eta', $interessi', '$passwordcript') or die ($mysqli->error)");

rimane sempre il problema del bool(false) inserendo un var_dump subito dopo
PHP:
var_dump($sqlconfermauser)
Prendi il codice che ti ho postato sopra, in questo modo hai errato la query e nascosto l'errore

questa parte è php
PHP:
or die ($mysqli->error)
e serve per vedere eventuali errori nella query, prima c'era solo quell'apostrofo dimenticato quindi correggi e dovrebbe andare bene
 
Ok allora, l'errore di ora è
PHP:
Call to a member function fetch_array() on a non-object

in questa riga
PHP:
$row = $sqlrecuperauser->fetch_array(MYSQLI_ASSOC);

come suggerito da borgo ma non funziona.

Già mi è difficile capire come scrivere in mysql e php adesso c'è anche una nuova sintassi, sono incasinato. :dipser::dipser::crying:
 
Ok allora, l'errore di ora è
PHP:
Call to a member function fetch_array() on a non-object

in questa riga
PHP:
$row = $sqlrecuperauser->fetch_array(MYSQLI_ASSOC);

come suggerito da borgo ma non funziona.

Già mi è difficile capire come scrivere in mysql e php adesso c'è anche una nuova sintassi, sono incasinato. :dipser::dipser::crying:
E' probabile che ci sia un errore nella query o che non la esegui e quindi non puoi ricavare i risultati, dato che c'è stata un po di confusione puoi ri-postare il pezzo di codice interessato?
 
Ragazzi il problema è parzialmente risolto vi posto il codice corretto, almeno adesso mi inserisce i dati nella tabella corretta, ma non li inserisce tutti, anzi nessuno tranne password ed email.
PHP:
<?php
		if(isset($_GET['passkey'])){

				$passkey = htmlspecialchars($_GET['passkey']);

				//$sqlrecuperauser = "SELECT * FROM utenti_temp WHERE codiceconferma = '$passkey'";
				//$risultatouser = mysql_query($sqlrecuperauser);
			$mysqli = new mysqli("localhost", "root", "pass", 'biblio_nuova');
			
					$sqlrecuperauser = "SELECT * FROM utenti_temp WHERE codiceconferma = '$passkey'";
				if ($result = $mysqli->query($sqlrecuperauser)) {
					$contauser = (($result->num_rows) == 1);

					if($contauser == 1){

						$rows = mysql_fetch_array($sqlrecuperauser, MYSQLI_ASSOC);
						$nome = $rows ['nome'];
						$cognome = $rows ['cognome'];
						$eta = $rows ['eta'];
						$username = $rows['username'];
						$email = $rows['email'];
						$interessi = $rows ['interessi'];
						$password = $rows ['password'];
						$passwordcript = md5($password);
						
						
					
					$sqlconfermauser = $mysqli->query("INSERT INTO biblionet_nuova_ok (username, email, nome, cognome, eta, interessi, password) VALUES ('$username', '$email', '$nome', '$cognome', '$eta', '$interessi', '$passwordcript')") or die ($mysqli->error);
					
					var_dump($sqlconfermauser);
                    
					if ($sqlconfermauser == 1) {

						echo '<div id="benvenuto">
						<p><h3>Benvenuto '.$username.' nel gruppo Biblionet</h3></p>
						Il tuo account è stato attivato da adesso potrai accedere completamente al sito cliccando sulla voce "Entra" e partecipare alle nostre iniziative.
						Ti ricordiamo che l\'iscrizione  gratuita, e che per ogni esigenza o problema
						 lo <a href="images/GRUPPO%20BIBLIONET.jpg" class="staff" img="images/GRUPPO%20BIBLIONET.jpg">Staff</a>
						 e gli animatori sono a tua disposizione.
						Ti auguriamo un buon 2013, ed una navigazione divertente e piacevole.
						</div>';

						$sqleliminadati = $mysqli->query("DELETE FROM utenti_temp WHERE codiceconferma = '$passkey'");

					} else {

						echo '<div id="errore"><p><h3>Probabilmente qualcosa &egrave; andato storto, riprova e se noti che il problema continua,
						avvisaci che provvederemo a sistemarlo. Grazie dallo staff Biblionet</h3></p></div>';
						echo "<meta http-equiv='Refresh' content='3000; URL=Newindex.php'>";
					}
                    
				}
                    
		} else {
			echo '<div id="errore"><p><h3>Probabilmente qualcosa &egrave; andato storto, riprova e se noti che il problema continua,
			    avvisaci che provvederemo a sistemarlo. Grazie dallo staff Biblionet 3</h3></p></div>';
		}
	}

//echo "C'è stato un errore, se hai sbagliato qualcosa riprova, altrimenti segnalacelo. Lo correggeremo il prima possibile!";
//echo "<meta http-equiv='Refresh' content='300; URL=Newindex.php'>";
                

$mysqli->close();
?>

ricevo il messaggio di benvenuto ma i dati nel database non sono completi
 

Discussioni simili