Risultato di una query nell'array

Fabrizio966

Nuovo Utente
28 Mag 2015
8
0
0
PHP:
$conn = mysql_connect("localhost","root","");
		  $db = mysql_select_db('maturita',$conn);
		  $sql = "Select * From produttori";
		  $risultato=mysql_query($sql);
		  $count=mysql_num_rows($risultato);
		  $strsql = "Select nome From produttori";
		  $i=mysql_query($strsql);
		  $count2=mysql_fetch_array($i);
		  echo $count2[1];

ragazzi, questo è il codice che sarà applicato in un'altro ambito , quello che non capisco è come mai quando stampo l'array $count2[0] mi da il risultato del primo valore restituito dalla query ,
quando stampo $count2[1] ( o con un'altro indice) mi restituisce l'errore
Undefined offset: 1 in C:\xampp\htdocs\index4.php on line 124
E' come se non mi memorizzasse il resto dei dati della query ... soluzioni?:confused::confused:
 
Ultima modifica di un moderatore:
ciao
PHP:
<?php
$conn = mysql_connect("localhost","root","");
$db = mysql_select_db('maturita',$conn);
$strsql = "SELECT nome FROM produttori";//a che ti servono 2 query e due chiamate?
$risultato=mysql_query($strsql);
$count=mysql_num_rows($risultato);//questo a che t serve se non lo usi?
//generalmente si usa in un if/else esempio
if($count > 0){
	//poi per estrarre tutti i record (se non usi il while estrare solo il primo record)
	while($count2=mysql_fetch_array($risultato)){
		echo $count2['nome'],"<br>"; //oppure $count2[0] se 'nome' è il secondo campo della tabella
	}
}else{
	echo "non ci sono risultati";
}
?>
attento se usi la forma tipo $count2[1]
dalla query "SELECT nome FROM produttori" estrai solo il campo 'nome' quindi $count2[1] ti da errore perche hai estratto solo un campo e quindi $count2[1] non esiste
per estrarre i vari campi usa la query "SELECT * FROM produttori" con cui estrai tutti i campi del record
esempio, sia la tabella coi campi
id
nome
cognome
usando SELECT* FROM produttori equivalente a SELECT id, nome, cognome FROM produttori
$count2[0] oppure $count2['id']
$count2[1] oppure $count2['nome']
$count2[2] oppure $count2['cognome']
usando SELECT nome, cognome FROM produttori
$count2[0] oppure $count2['nome']
$count2[1] oppure $count2['cognome']
usando SELECT nome FROM produttori
$count2[0] oppure $count2['nome']
il tutto usando mysql_fetch_array(...)

se invece tu usassi mysql_fetch_assoc(...)
le formne con indice numerico non esistono

ultima cosa: se stai studiando e quindi sei agli inizi abbandona le vecchie istruzioni mysql deprecate e passa alle mysqli
 
Ultima modifica:
Ti ringrazio dell'aiuto ,ho risolto il problema, non avevo ancora capito bene il funzionamento degli array in php , ascolterò il tuo consiglio e implementerò le funzioni mysqli dove ho implementato gli sql, grazie ancora ^^
 

Discussioni simili