• Home
  • Forum
  • Fare Web
  • PHP

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

  • Creatore Discussione Creatore Discussione Paperino78
  • Data di inizio Data di inizio 5 Gen 2013
Prec.
  • 1
  • 2
  • 3
Succ.
Primo Prec. 2 di 3 Succ. Ultimo
P

Paperino78

Utente Attivo
30 Giu 2012
409
0
16
Milano
  • 12 Gen 2013
  • #21
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.
 
N

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
  • 12 Gen 2013
  • #22
Paperino78 ha scritto:
non capisco come mai da qualche tempo non possa più utilizzare il "vecchio" mysql_query ma debba usare la nuova versione mysqli.
Clicca per allargare...
Beh, anche se non sai da cosa dipende direi che è meglio dato che mysql verrà poi rimosso ed è attualmente deprecato
 
P

Paperino78

Utente Attivo
30 Giu 2012
409
0
16
Milano
  • 13 Gen 2013
  • #23
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
 
N

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
  • 13 Gen 2013
  • #24
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: 13 Gen 2013

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 13 Gen 2013
  • #25
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
 
P

Paperino78

Utente Attivo
30 Giu 2012
409
0
16
Milano
  • 13 Gen 2013
  • #26
Nefyt ha scritto:
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
Clicca per allargare...

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:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 13 Gen 2013
  • #27
ciao
Nefyt ha scritto:
...... direi che è meglio dato che mysql verrà poi rimosso ed è attualmente deprecato
Clicca per allargare...
quello che rompe i suddetti è che mi tocca rimettere la mani su tutto il sito:incazz:
 
P

Paperino78

Utente Attivo
30 Giu 2012
409
0
16
Milano
  • 13 Gen 2013
  • #28
Almeno tu ci capisci qualcosa! Io proprio nulla. :evil::evil:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 13 Gen 2013
  • #29
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
 
P

Paperino78

Utente Attivo
30 Giu 2012
409
0
16
Milano
  • 13 Gen 2013
  • #30
borgo italia ha scritto:
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
Clicca per allargare...

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', 'mail@gmail.com', 'ale', 'ole', '12121950', qaqaqaaqaq', '3506e1dff0db4e4d78412e2feb7c0a95'"

suggerimenti????
 
N

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
  • 13 Gen 2013
  • #31
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: 13 Gen 2013

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 13 Gen 2013
  • #32
cia
sei sicuro che la tabella si chiamoi
biblionet nuova
e non
biblionet_nuova

tra l'aptro sarebbe ,eglio chiamarla così
 
P

Paperino78

Utente Attivo
30 Giu 2012
409
0
16
Milano
  • 13 Gen 2013
  • #33
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:
 
P

Paperino78

Utente Attivo
30 Giu 2012
409
0
16
Milano
  • 13 Gen 2013
  • #34
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???
 
N

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
  • 13 Gen 2013
  • #35
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);
 
P

Paperino78

Utente Attivo
30 Giu 2012
409
0
16
Milano
  • 13 Gen 2013
  • #36
Paperino78 ha scritto:
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???
Clicca per allargare...

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)
 
N

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
  • 13 Gen 2013
  • #37
Paperino78 ha scritto:
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)
Clicca per allargare...
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
 
P

Paperino78

Utente Attivo
30 Giu 2012
409
0
16
Milano
  • 13 Gen 2013
  • #38
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:
 
N

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
  • 13 Gen 2013
  • #39
Paperino78 ha scritto:
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:
Clicca per allargare...
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?
 
P

Paperino78

Utente Attivo
30 Giu 2012
409
0
16
Milano
  • 13 Gen 2013
  • #40
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
 
Prec.
  • 1
  • 2
  • 3
Succ.
Primo Prec. 2 di 3 Succ. Ultimo
Devi accedere o registrarti per poter rispondere.

Discussioni simili

[php-mysql] Prelevare i valori dai campi Enum/Set
  • ElfoDelBasket
  • 24 Ago 2005
  • PHP
Risposte
5
Visite
2K
PHP 26 Ago 2005
open-think
M
Personalizzare Mysql su una macchina VPS in Aruba
  • morenog
  • 14 Gen 2025
  • Server Dedicati e VPS
Risposte
0
Visite
770
Server Dedicati e VPS 14 Gen 2025
morenog
M
S
Utilizzare MySql con maschere Access
  • staiul
  • 27 Nov 2024
  • MySQL
Risposte
0
Visite
355
MySQL 27 Nov 2024
staiul
S
K
form Inserimento record mysql
  • Kiko74b
  • 21 Gen 2023
  • PHP
Risposte
2
Visite
1K
PHP 25 Gen 2023
WmbertSea
P
Mysql lento a cancellare
  • paolo.ladoni
  • 18 Nov 2022
  • MySQL
Risposte
1
Visite
1K
MySQL 22 Nov 2022
marino51
P
Codifica caratteri speciali mysql php
  • Peterrey76
  • 24 Ott 2022
  • PHP
Risposte
2
Visite
3K
PHP 23 Apr 2025
webest
N
MAX() + ADD_DATE - per update su Mysql
  • Namaste!
  • 20 Lug 2022
  • MySQL
Risposte
0
Visite
2K
MySQL 20 Lug 2022
Namaste!
N
F
Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili
  • Fra_23
  • 25 Giu 2022
  • PHP
  • 2
Risposte
20
Visite
4K
PHP 16 Lug 2022
zorro
L
tipo boolean non funzionante su mariadb (mysql). E codice php 7.4.
  • luigi777
  • 18 Giu 2022
  • PHP
Risposte
0
Visite
815
PHP 18 Giu 2022
luigi777
L
M
PHP/MySQL - Estrarre valori min e max di ogni gruppo
  • Max61
  • 10 Giu 2022
  • PHP
Risposte
5
Visite
2K
PHP 13 Giu 2022
Max61
M
W
MySQL ciclo in SELECT
  • wolfland
  • 26 Mag 2022
  • MySQL
Risposte
0
Visite
2K
MySQL 26 Mag 2022
wolfland
W
L
Mysql gestionale multipiattaforma
  • lucavalentino
  • 7 Apr 2022
  • MySQL
Risposte
0
Visite
2K
MySQL 7 Apr 2022
lucavalentino
L
W
MySQL SELECT list dinamica
  • wolfland
  • 2 Feb 2022
  • MySQL
Risposte
0
Visite
2K
MySQL 2 Feb 2022
wolfland
W
M
utilizzo mysql in nodejs - crea createdAt e updateAt
  • misonsan
  • 31 Dic 2021
  • MySQL
Risposte
1
Visite
3K
MySQL 31 Dic 2021
misonsan
M
T
colonne di tabelle mysql ordinate
  • twogate
  • 28 Nov 2021
  • MySQL
Risposte
0
Visite
2K
MySQL 28 Nov 2021
twogate
T
M
Sintassi "personalizzata" per mysql workbench?
  • mattiac
  • 27 Set 2021
  • MySQL
Risposte
0
Visite
3K
MySQL 27 Set 2021
mattiac
M
A
Mysql
  • andreainter
  • 26 Ago 2021
  • MySQL
Risposte
0
Visite
1K
MySQL 26 Ago 2021
andreainter
A
F
Ricreare struttura php+mysql su Xampp
  • francescoITA
  • 23 Ago 2021
  • Apache
Risposte
0
Visite
6K
Apache 23 Ago 2021
francescoITA
F
M
Array associativi php su 2 campi mysql
  • maxnegri2036
  • 14 Ago 2021
  • PHP
Risposte
10
Visite
2K
PHP 16 Ago 2021
zorro
Z
Controllo giorni MYSQL
  • z.cristiano
  • 28 Giu 2021
  • PHP
Risposte
0
Visite
1K
PHP 28 Giu 2021
z.cristiano
Z
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • PHP
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?