Interrogazioni multiple

sarablack

Nuovo Utente
15 Apr 2008
13
0
0
Ciao a tutti.. sto studiando per un esame di php e mysql.. allora quello che dovrei fare è interrogare un database. Da quanto ho capito (visto l'esame è la seconda volta che lo faccio) occorre fare un'interrogazione multipla in quanto il db è formato da 4 tabelle correlate tra loro in modo diverso. Ora quello che chiedevo è qual'è la sintassi di un'interrogazione multipla? Trattandosi si un db "libri" con nomi autori, titolo libri, prezzi, editori, isbn.. la funzione che mi è venuta in mente è:

Select nome,cognome,titolo,prezzo from autore,libri,isbn where ...

ecco in questa parte dovrei mettere i collegamenti delle varie tabelle quindi dovrei mettere il "nome del campoID"."nome della tabella"="nome del campoID"."nome della tabella"? quindi mettere le relazioni delle 2 tabelle?!

Non è c'è qualche database già fatto che posso provare ad interrogare?!? Non so davvero come fare, ovviamente questa interrogazione viene generata da un form. Spero qualcuno sia riuscito a capire quello che ho provato a spiegare... grazie
 
si ok fin qui ci sono infatti:
Devo collegare 2 file e fare il join di due tabelle il primo è uno.php

<HTML>
<BODY>
<CENTER>Vedi i record della tabella nomi</CENTER>
<?php

$connessione=mysql_connect ("localhost","root","");
if (!$connessione){
echo "Impossible connettersi";
exit;
}
$db=mysql_select_db("sport",$connessione);
if (!$db) {
echo "impossibile selezionare db";
exit;
}

$sql="SELECT nome FROM nomi";
$risultati_mysql=mysql_query($sql,$connessione);
$num_righe=mysql_num_rows($risultati_mysql);
if ($num_righe == 0){
echo "non ci sono informazioni";
} else {
echo "<FORM METHOD=GET ACTION=\"visualizza.php\">";
echo "seleziona una persona";
echo "<SELECT NAME=\"id_record\">";
while ($riga=mysql_fetch_array($risultati_mysql))
{
$nome=$riga["nome"];
$id=$riga["ID_nome"];
echo "<OPTION VALUE=\"$id\">$nome";
}
echo "<\SELECT>";
}
echo "<BR>";
echo "<INPUT TYPE=\"SUBMIT\" VALUE=\"Visualizza info\">";
echo "<INPUT TYPE=\"RESET\" VALUE=\"cancella\">";
mysql_close($connessione);
?>
</FORM>
</BODY>
</HTML>

e mi da come errore

Vedi i record della tabella nomi
seleziona una persona SARA: Undefined index: ID_nome in C:\Program Files\EasyPHP 2.0b1\www\uno.php on line 28
Visualizza le info
Cancella

e l'altro file con cui si dovrebbe collegare è visualizza.php

<HTML>
<BODY>
<CENTER>Vedi i record della tabella nomi</CENTER>
<?php

$connessione=mysql_connect ("localhost","root","");
if (!$connessione){
echo "Impossible connettersi";
exit;
}
$db=mysql_select_db("sport",$connessione);
if (!$db) {
echo "impossibile selezionare db";
exit;
}


$sql="SELECT nome,hobby FROM nomi,hobby WHERE nomi.id=ID_nome ";
$risultati_mysql=mysql_query($sql,$connessione);
$num_righe=mysql_num_rows($risultati_mysql);
if ($num_righe == 0){
echo "non ci sono informazioni";
} else {
while ($riga=mysql_fetch_array($risultati_mysql))
{
$nome=$riga["nome"];

$id=$riga["id_record"];

}

}
echo "<BR>";

mysql_close($connessione);
?>
</FORM>
</BODY>
</HTML>


e mi da come errore:

Vedi i record della tabella nomi

Notice: Undefined index: id_record in C:\Program Files\EasyPHP 2.0b1\www\visualizza.php on line 28.

in teoria dovrebbe essere solo questo l'errore, l'interrogazione sql dovrebbe essere giusta perchè provandola sul prompt dei comandi mi da il join giusto tra la tabella nome e hobby. Come posso aggiustarlo? Il fatto è che la versione da dove ho preso il prompt è diversa da quella che sto usando come posso sistemarla?! Le due tabelle sono descritte così:


mysql> describe nomi;
+-----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+----------------+
| nome | varchar(20) | YES | | NULL | |
| indirizzo | varchar(30) | YES | | NULL | |
| provincia | varchar(20) | YES | | NULL | |
| citta | varchar(20) | YES | | NULL | |
| paese | varchar(20) | YES | | NULL | |
| id | int(11) | NO | PRI | NULL | auto_increment |
+-----------+-------------+------+-----+---------+----------------+

mysql> describe hobby;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| ID_nome | int(11) | YES | | NULL | |
| hobby | varchar(20) | YES | | NULL | |
 

Discussioni simili