PDA

View Full Version : visualizzare tramite l'id


Fede83
12-10-2004, 08:28
Ciao a tutti,

come si faccio a visualizzare dei prodotti, in base all'id?
Io ho fatto questa select, ma non fa niente:

<?php
$conn = @mysql_connect("localhost","root","") or die("connessione fallita");
@mysql_select_db("computergratis") or die ("connessione fallita5");
$sql = "SELECT * FROM prodotti where idcategoria";
$risultato = @mysql_query($sql) or die ("query fallita");
print "<br><br><table align=center width=700 style=border-style:dotted ;border-width:6 bordercolor=black> ";

while ($linea = mysql_fetch_array($risultato)) {
print "<tr>";
print "<td><font size=2 face=courier><b>".$linea['nomeprodotto']."</b></font></td>";


}
print "</tr></table>";

?>

Ciao e Grazie :muro:

ilsensine
12-10-2004, 08:34
La select è formalmente scorretta. La clausola "where" richiede una condizione, ad es. "where idcategoria=5" oppure "where idcategoria < 10".

Se ti interessa ordinare gli articoli in base all'id, non devi usare "where" ma "order by".

Fede83
12-10-2004, 10:40
Non hai capito il mio problema, mi sono spiegata male:

ho fatto una tabella che si chiama CATEGORIE, e una che si chiama PRODOTTI, ogni categoria è linkata alla stessa pagina che si chiama view.php, io voglio che quando clicco sulla categoria esempio accessori che ha un idcategoria pari a 3, voglio che vada a prendere tutti gli accessori che hanno idcategoria = a 3 dal database PRODOTTI, per cui la mia domanda è che tipo di select devo fare.

le categorie sono lincate in questo modo:href=\"view.php?id=$linea[idcategoria]\


spero di essermi spiegata meglio.

cionci
12-10-2004, 16:09
if(!is_numeric($_REQUEST["id"]))
die("Errore nel passaggio dei parametri");
$sql = "SELECT * FROM prodotti where idcategoria = ". $_REQUEST["id"] . ";" ;

cionci
12-10-2004, 16:11
Originariamente inviato da Fede83
le categorie sono lincate in questo modo:href=\"view.php?id=$linea[idcategoria]\

Sicuro che funzioni questo ?!?!?!?
Dai un'occhiata a quelloc he ti scrive nel link del browser ;)

Fede83
13-10-2004, 09:07
si funziona tutto, quando vado su un link nella barra di stato in basso si visualizza questo:
localhost/computergratis/view.php?id=20

il mio problema è come faccio a dire con una select di selezionare dal database prodotti, tutti i prodotti con id pari a 20 oppure se clicco in un altro link, mi deve selezionare dalla stessa tabella PRodotti il prodotto con id pari a una'altro numero e cosi via. Io ho fatto questo :

<?php
$conn = mysql_connect("localhost","root","") or die("connessione fallita");
mysql_select_db("computergratis") or die ("db esploso");
$sql = "SELECT * FROM prodotti WHERE idcategoria=".$_GET['idcategoria'].";";
$risultato = mysql_query($sql) or die ($sql);
print "<br><br><table align=center width=700 style=border-style:dotted ;border-width:6 bordercolor=black> ";

while ($linea = mysql_fetch_array($risultato)) {
print "<tr>";
print "<td><font size=2 face=courier><b>".$linea['nomeprodotto']."</b></font></td>";


}
print "</tr></table>";

?>

perche tutto funziona come l'inserimento di prodotti nel data base, ecc..., l'unico che i prodotti quando clicco sui link non si visualizzano.

Inoltre vi faccio una domanda, perche sono alle prime armi e penso che si è capito: Io devo fare il back office o parte amministratore di un sito si fa cosi o ci sono metodi piu veloci e piu facili?

Grazie mille..... :muro:

Fede83
13-10-2004, 09:09
dimenticavo quando clicco sui link, si sempre la pagina view.php con questa scritta:

SELECT * FROM prodotti where idcategoria = ;



ciao ciao :p

cionci
13-10-2004, 14:01
Se gli passi "id" nel get come fai a leggere $_GET['idcategoria'] ?

Fede83
14-10-2004, 08:31
hai ragione infatti il link è sbagliato deve essere cosi:

<?php
error_reporting (0);
$conn = @mysql_connect("localhost","root","") or die("connessione fallita");
@mysql_select_db("computergratis") or die ("connessione fallita");
$sql = "SELECT * FROM categorie";
$risultato = @mysql_query($sql) or die ("query fallita");

print "<table background=sfondi/blu.jpg style=border-style:double ;border-width:6 bordercolor=black align=center > ";

while ($linea = mysql_fetch_array($risultato)) {
print "<tr>";
print "<td colspan=2 ><font size=1 face=arial color=black><a target=centro href=\"view.php?idcategoria=$linea[idcategoria]\">".$linea['categoria']."</a></font></td>";



}
print "</tr></table>";



?>

Pero non mi visualizza i prodotti comunque :muro:

cionci
14-10-2004, 14:49
Ti da qualche errore ? Se visualizzi il sorgente della apgina HTM del risultato vedi qualcosa ?

Fede83
15-10-2004, 08:18
Ciao, prima di tutto ti ringrazio per l'aiuto, il problema l'ho risolto, perche ho sbagliato a scrivere una variabile, al posto di 'nomeprodotto' dovevo scrivere 'nome', adesso mi visualizza tutto correttamente, per cui mi scuso per la mia sbadataggine. Pero ti faccio solo un'ultima domanda:

quando vado nella tabella per inserire le categorie, scrivo i dati della categoria permo inserisci e mi inserisce la categoria nel database, pero perche quando entro anche per sbaglio nella pagina di inserimento categorie e torno indietro mi inserisce un campo vuoto nel database? (senza permere sul bottone inserisci)


Ciao e grazie ancora :oink:

cionci
15-10-2004, 15:10
Intanto dovresti impedire una cosa del genere mettendo il campo categoria come richiesto...e che quindi non deve essere mai vuoto...

Probabilmente dipende da come gestisci la pagina di aggiornamento...

Se torni idneitro non ti dovrebbe inviare novamente i dati della query...soprattutto se passi il tutto tramite POST...

Fede83
18-10-2004, 08:13
Ok proverò cosi,

Grazie ancoara. ;)