- Home
- Categorie
- Coding e Sistemistica
- PHP
- problema con una query
-
problema con una query
ciao, ho una query che mi da errore ma non riesco a capire cosa possa essere:
[php]
<?php
$query="SELECT cinema_ana_film.*, cn1.nazione AS nazione1, cn1.id_cinema_nazioni AS cn1.id_cinema_nazioni1,
DATE_FORMAT(data_uscita, '%d-%m-%Y') AS data_uscita
FROM cinema_ana_film, cinema_nazioni cn1
WHERE cinema_ana_film.nazione_1=cn1.cn1id_cinema_nazioni1
AND cinema_ana_film.titolo LIKE '$lettera%' AND cinema_ana_film.id_cinema_ana_film > '2'
ORDER BY cinema_ana_film.titolo ASC LIMIT $primo, $per_page";
$ris_query=mysql_query($query, $conn);$row_film=mysql_fetch_array($ris_query);
?>
[/php]questo è l'errore che mi stampa:Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /web/htdocs/sito.it/home/pann_contr_comune/include_case1_cinema_ana_film.php on line 60
ho risolto il problema dell'errore, solo che c'è ancora qualcosa che non va.
Sto cercando di realizzare un elenco di film, ad esempio vorrei che uscisse così:TITOLO | NAZIONE
La passione di Cristo | Stati Uniti / Italia
Monster | Stati Uniti / Germaniama non capisco perchè nel secondo film mi stampa come seconda nazionalità l'Italia anzichè la Germania come risulta nel DB
TITOLO | NAZIONE
La passione di Cristo | Stati Uniti / Italia
Monster | Stati Uniti / Italia[php]
<?php
$query="SELECT cinema_ana_film.*, cn1.nazione AS nazione1,
DATE_FORMAT(data_uscita, '%d-%m-%Y') AS data_uscita
FROM cinema_ana_film, cinema_nazioni cn1
WHERE cinema_ana_film.nazione_1=cn1.id_cinema_nazioni";$ris_query=mysql_query($query, $conn) or die(mysql_error());
while($row_film=mysql_fetch_array($ris_query)){?><?=$row_film['nazione1']?>
<?php
$query2="SELECT cinema_ana_film.*, cn2.nazione AS nazione2,
DATE_FORMAT(data_uscita, '%d-%m-%Y') AS data_uscita
FROM cinema_ana_film, cinema_nazioni cn2
WHERE cinema_ana_film.nazione_2=cn2.id_cinema_nazioni";$ris_query2=mysql_query($query2, $conn) or die(mysql_error());
$row_film2=mysql_fetch_array($ris_query2);
?><?php
if ($row_film['nazione_2'] > '0')
{
?>
/ <?=$row_film2['nazione2']?>
<?php
}
else
{
?><?php
}
}
?>
[/php]upup
-
ciao,
dalla query che hai scritto estrae tutta la tabella con il relativo join ma stampa sempre e solo il primo record. Non hai messo nella condizione where qualcosa che faccia capire al db quale record desideri stampare.
-
io vorrei che se sono popolati le due colonne "nazione_1" e "nazione_2" mi stampi entrambe, ma se è popolata solo "nazione_1" mi stampi solo la prima colonna.
Se nel WHERE metto:
WHERE cinema_ana_film.nazione_1=cn1.id_cinema_nazioni AND cinema_ana_film.nazione_2=cn2.id_cinema_nazioni
mi stampa solo i record che hanno entrambe le colonne popolate e mi esclude tutti gli altri record
up