[PHP] problema fetch_array

Ilyich

Utente Attivo
911
145
Audio
(in elaborazione)
ciao a tutti!
sto muovendo i primi passi riguardo a PHP e gestione dei database.
Sto svolgendo un esercizio con il quale dovrei interrogare un database stampando a video i risultati della query ma riscontro l'errore
"Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\Program Files (x86)\EasyPHP-5.3.9\www\leggidb.php on line 10"
il codice del file "leggidb.php" è il seguente:
Codice:
<?php
include ('conf.php');
$sql=mysql_query ("SELECT * FROM `lista_utenti` ");
while ($row = mysql_fetch_array($sql)) {

$ID=hmtlspecialchars ($row['ID']);
$Nome=hmtlspecialchars ($row['Nome']);
$Cognome=hmtlspecialchars ($row['Cognome']);
$Username=hmtlspecialchars ($row['nomeutente']);
echo ".$Nome"."".".$Cognome".".$Username";

}

mentre il codice del file conf.php è
Codice:
<?
$host="localhost";
$user="user";
$password="";
$db="utenti";
$conn=mysql_connect ($host,$user,$password)
or die ('Impossibile connettersi a Mysql:'mysql_error().' ');
mysql_select_db ("$db")
or die ('Impossibile connettersi al database:'mysql_error()' ');
?>

nella tabella ho inserito per comodità un solo record...
successivamente dovrei creare una maschera di login e permettere l'accesso ad una pagina riservata solo se i dati inseriti rientrano tra quelli registrati nella tabella del database, ma se prima non risolvo il problema di cui sopra sono bloccato...
grazie in anticipo! :)
 
Ultima modifica:

lorigio

Utente Attivo
818
238
CPU
Athlon II x3 435 With Noctua NH-D14
Scheda Madre
Asus M5A99X EVO AM3+
HDD
1TB + 160gb + WD My Passport Essential 500gb
RAM
Kingston ddr3 9-9-9-24 6gb 1333mhz
GPU
Gigabyte 5670 790mhz
Monitor
Samsung 22 pollici P2270HD
PSU
Corsair 400watt
Case
Cm 690 II advanced
OS
Windows 7 32 bit
Re:
PHP:
 problema ferch_array[/b]

Prova a cambiare questo 
[LEFT][COLOR=#333333]echo ".$Nome"."".".$Cognome".".$Username";
con
echo "Nome: $nome\nCognome: $Cognome\nUsername: $Username";[/COLOR][/LEFT]
 

Ilyich

Utente Attivo
911
145
Audio
(in elaborazione)
niente da fare... ma in cosa consistono le stringhe aggiuntive?
 

lorigio

Utente Attivo
818
238
CPU
Athlon II x3 435 With Noctua NH-D14
Scheda Madre
Asus M5A99X EVO AM3+
HDD
1TB + 160gb + WD My Passport Essential 500gb
RAM
Kingston ddr3 9-9-9-24 6gb 1333mhz
GPU
Gigabyte 5670 790mhz
Monitor
Samsung 22 pollici P2270HD
PSU
Corsair 400watt
Case
Cm 690 II advanced
OS
Windows 7 32 bit
niente da fare... ma in cosa consistono le stringhe aggiuntive?
Cioè?

Comunque prova questo


<?phpinclude ('conf.php');
$sql=mysql_query ("SELECT * FROM lista_utenti");
while ($row = mysql_fetch_array($sql)) {


$ID=hmtlspecialchars ($row['ID']);
$Nome=hmtlspecialchars ($row['Nome']);
$Cognome=hmtlspecialchars ($row['Cognome']);
$Username=hmtlspecialchars ($row['nomeutente']);
echo "Nome: $nome\nCognome: $Cognome\nUsername: $Username";
}

Se non funziona ricontrolla che i nomi dei campi siano uguali a quelli nel codice controllando le maiuscole.
 
Ultima modifica:

Ilyich

Utente Attivo
911
145
Audio
(in elaborazione)
volevo dire, hai modificato
Codice:
echo ".$Nome"."".".$Cognome".".$Username";
con
Codice:
echo "Nome: $nome\nCognome: $Cognome\nUsername: $Username";[/COLOR]

perchè?

comunque niente, continua a dare errore...
ho controllato che i campi espressi dopo $row coincidano con quelli della tabella e sono identici...
 

lorigio

Utente Attivo
818
238
CPU
Athlon II x3 435 With Noctua NH-D14
Scheda Madre
Asus M5A99X EVO AM3+
HDD
1TB + 160gb + WD My Passport Essential 500gb
RAM
Kingston ddr3 9-9-9-24 6gb 1333mhz
GPU
Gigabyte 5670 790mhz
Monitor
Samsung 22 pollici P2270HD
PSU
Corsair 400watt
Case
Cm 690 II advanced
OS
Windows 7 32 bit
Perchè io ho sempre fatto in quel modo
Comunque qua
<?$host="localhost";
$user="user";
$password="";
$db="utenti";
$conn=mysql_connect ($host,$user,$password)
or die ('Impossibile connettersi a Mysql:'mysql_error().' ');
mysql_select_db ("$db")
or die ('Impossibile connettersi al database:'mysql_error()' ');
?>

Sei sicuro che l'user non è root e la password non l'hai messa? Perchè lo script sopra a me sembra giusto, mi viene il dubbio che non si connette.
 

Ilyich

Utente Attivo
911
145
Audio
(in elaborazione)
ma non dovrebbe darmi l'errore di connessione al db in caso?
comunque ho provato anche a cambiare in root ma nulla...
altra particolarità: ho notato che se provo ad accedere a PHPMyAdmin dall'icona di EasyPhp sulla barra delle applicazioni, mi restituisce Errore 403: accesso negato...
devo aprire Easy PHP e poi all'interno della pagina andare sulla voce di PHPMyAdmin...
p.s.: non trovo più dove si verificavano nome utente e password di PhpMyAdmin... da dove ci si andava??? :oogle:
 

lorigio

Utente Attivo
818
238
CPU
Athlon II x3 435 With Noctua NH-D14
Scheda Madre
Asus M5A99X EVO AM3+
HDD
1TB + 160gb + WD My Passport Essential 500gb
RAM
Kingston ddr3 9-9-9-24 6gb 1333mhz
GPU
Gigabyte 5670 790mhz
Monitor
Samsung 22 pollici P2270HD
PSU
Corsair 400watt
Case
Cm 690 II advanced
OS
Windows 7 32 bit
Su phpmyadmin che pass metti? non uso easyphp uso xampp quindi non so come puoi vedere i dati.
Se ci sei dopo nel pomeriggio ti posso aiutare in teamviewer, se vuoi verso le 14 mandami in pm l'id e la pass di team e ti aiuto la, faccio prima che qua
 
Ultima modifica:

Mr Storm

Utente Attivo
77
19
CPU
Intel Core i5 750
Scheda Madre
Asus P7P55D Deluxe
HDD
500 GB
RAM
Corsair 8GB DDR3 1600 MHz
GPU
Sapphire HD5850
Monitor
Asus VK222H 22"
PSU
OCZ ModXstream Pro 700W
OS
Windows 7 Professional x64
Il problema è dato dal fatto che la query fallisce e ti restituisce false, come riportato nel manuale di PHP. Prova a stampare il messaggio di errore, usando la funzione mysql_error() dopo mysql_query(), ma prima del while.
 

Ilyich

Utente Attivo
911
145
Audio
(in elaborazione)
allora, sono ripartito da zero.
Ho creato un nuovo file con queste semplici istruzioni:
Codice:
<?php 
$link = mysql_connect('localhost', 'user', ''); 

if (!$link) { 
   die ('Non riesco a connettermi: ' . mysql_error()); }
$database = mysql_select_db('utenti', $link); 

if ($database==TRUE) { 
 echo (" Connessione riuscita");} 
else {echo 'Non riesco a connettermi: ' . mysql_error();}

?>
risultato:"Non riesco a connettermi: Access denied for user ''@'localhost' to database 'utenti'
 

lorigio

Utente Attivo
818
238
CPU
Athlon II x3 435 With Noctua NH-D14
Scheda Madre
Asus M5A99X EVO AM3+
HDD
1TB + 160gb + WD My Passport Essential 500gb
RAM
Kingston ddr3 9-9-9-24 6gb 1333mhz
GPU
Gigabyte 5670 790mhz
Monitor
Samsung 22 pollici P2270HD
PSU
Corsair 400watt
Case
Cm 690 II advanced
OS
Windows 7 32 bit
Io ti consiglio di installare xampp.
appena installato vai su 127.0.0.1, ti dirá vai su xampp_security.php e li imposti password mysql poi lo restarti e fatto
 

Ilyich

Utente Attivo
911
145
Audio
(in elaborazione)
...sembro aver risolto il problema per adesso, o meglio, adesso riesco a connettermi al database, avevo fatto un po' di macello con gli utenti :D
ho per il momento lasciato perdere l'esercizio di lettura del db, mi sto concentrando sul fare un form di inserimento per aggiungere record ad una tabella.
Qui però ho un altro problema, posso continuare qui o apro una discussione apposita?
 

lorigio

Utente Attivo
818
238
CPU
Athlon II x3 435 With Noctua NH-D14
Scheda Madre
Asus M5A99X EVO AM3+
HDD
1TB + 160gb + WD My Passport Essential 500gb
RAM
Kingston ddr3 9-9-9-24 6gb 1333mhz
GPU
Gigabyte 5670 790mhz
Monitor
Samsung 22 pollici P2270HD
PSU
Corsair 400watt
Case
Cm 690 II advanced
OS
Windows 7 32 bit

Entra

oppure Accedi utilizzando

Discussioni Simili

Hot: Sei vaccinato? [sondaggio anonimo]

  • Primo ciclo vaccinale completo (1-2 dosi)

    Voti: 469 79.0%
  • Fatta 1a dose, in attesa della 2a

    Voti: 20 3.4%
  • Sono prenotato per la 1a dose

    Voti: 12 2.0%
  • Non so se vaccinarmi

    Voti: 16 2.7%
  • Non ho intenzione di vacciarmi

    Voti: 61 10.3%
  • Fatta anche la terza dose

    Voti: 16 2.7%