Newsgroup: it.comp.www.php
Titolo: [Niubbo] problema lettura da 2 tabelle

salve a tutti, suono nuovo di php e di questo NG. passo subito al
problema. ho un db con due tabelle (in realtà sono + di 2 ma quelle
che mi servono sono solo due), ordunque, mi serve uno script in php che
estragga da queste due tabelle tutte le righe che soddisfano un paio di
condizioni . vi posto il codice che ho scritto, così capite meglio:
<?php
$db_link=mysql_connect("pollodoro", "pollastro", "fuffametal");
//$db_link=mysql_connect("localhost", "root", "");
if (!$db_link) die ("La connessione al database non va");
mysql_select_db("semplicewebdb") or die("Errore nella
connessione".mysql_error() );
$query = "SELECT * FROM `tabella1`, `tabella2`  where tabella1.Login =
tabella2.Login AND tabella2.Stato = '0'";
$id_result=mysql_query($query);
$nrighe= mysql_num_rows($id_result);
for ($i=0;$i<$nrighe;$i++)
{
$user = mysql_fetch_array($id_result);
echo $user[$i];
}
mysql_close($db_link);
?>
orbene, questa cosa non funziona, mi stampa, nella pagina dove è
inserita, un solo risultat, incompleto e per di più su 3 righe, come
posso migliorarlo, per far si che mi stampi una tabella come si deve?
(x ogni riga dovrebbe stampare tutti i campi di tabella1 e di tabella2)
grazie a chi mi vorrà aiutare e BUON ANNO A TUTTI!
-- 
AlexG:

alex....@gmail.com
 wrote:

l'errore sta nella riga "echo $user[$i];" infatti mysql_fetch_array non
restituisce l'intero recordset, bensì un solo record (quello puntato dal
cursore DB) e fa avanzare il cursore...
quindi non puoi stampare l'iesimo elemento di $user... dato che non farebbe
quello che ti aspetti...
prova a dare un print_r($user) prima di stamparlo per renderti conto della
struttura dati che hai...
cmq invece del for usa questo codice per echare il campo login di ogni
record restituito..
=========================
while($user = mysql_fetch_array($id_result))
  {
    echo $user['Login'].'<br>'; 
  }
=========================
ciao...

 grazie a chi mi vorrà aiutare e BUON ANNO A TUTTI!
Il codice di cui hai bisogno è (più o meno) quello qua sotto.
Il codice che ti ho scritto ti ricostruisce una tabella. Se avevi
bisogno di qualcosa di diverso, fammi sapere.
Ah, ovviamente al posto di "nomecolonna1", "nomecolonna2" ecc. devi
mettere i nomi delle colonne così come sono nel database (e tra
virgolette).
Puoi aggiungere, ovviamente, altre colonne (così come puoi toglierle).
La conta dei risultati (mysql_num_rows()) serve solo se devi stampare
il numero dei risultati (se la togli funziona tutto lo stesso).
Spero di non aver fatto errori.
<?php
$db_link=mysql_connect("pollodoro", "pollastro", "fuffametal")
    or die ("La connessione al database non va")
mysql_select_db("semplicewebdb")
    or die("Errore nella connessione".mysql_error() );
$query = "SELECT *
          FROM `tabella1`, `tabella2`
          where tabella1.Login = tabella2.Login AND tabella2.Stato =
'0'";
$id_result=mysql_query($query);
$nrighe= mysql_num_rows($id_result); //Questo non serve  poi tanto...
echo "<table>\n";
while($riga=mysql_fetch_array($id_result))
{
    echo "<tr>\n";
    echo "<td>".$riga["nomecolonna1"]."</td>\n";
    echo "<td>".$riga["nomecolonna2"]."</td>\n";
    echo "<td>".$riga["nomecolonna3"]."</td>\n";
    echo "<td>".$riga["nomecolonna4"]."</td>\n";
    echo "<td>".$riga["nomecolonna5"]."</td>\n";
    echo "</tr>\n";
}
echo "</table>\n"
mysql_close($db_link);
?>
-- 
Lorenzo Breda
http://www.lbreda.com

[cut]
il codice che mi hai scritto è perfetto, grazie millemila!! ;)
-- 
AlexG: