- Home
- Categorie
- Coding e Sistemistica
- PHP
- Mostrare i risultati di una select
-
In pratica tu hai una tabella chiamata utente_siti dove ogni record contiene un url e un campo "nick" dove compare l'utente che lo "possiede"?
Ipotizziamo che hai recuperato già il nick e che estrai 3 dati dalla tabella dei siti...
$query = "SELECT nick, nome_sito, url_sito FROM utente_siti
WHERE nick = '$nick'";$result = mysql_query($query);
while ($array = mysql_fetch_array($result))
{$arr_stripped = array_map("stripslashes", $array); list($nick, $nome_sito, $url_sito) = $arr_stripped; ?> <ul><li><?=$nick?></li> <!-- stampi la lista dei tre valori a ciclo --> <li><?=$nome_sito?></li> <li><?=$url_sito?></li></ul>
}
Così fai una lista ul per ogni voce che c'è nel database... se vuoi fare una tabella cambi i tag xhtml a tuo piacimento... cmq il ciclo while scorre l'array $array finchè contiene dei valori, assegna ad $arr_stripped i singoli valori e poi li stampa a video...
Ci sono altre soluzioni volendo, ma questa cmq è funzionale...
keiske
-
ciao, intanto grazie.
io ho fatto un paio di modifiche al codice, anche perchè sono ancora fermo alla prima select...io ho scritto questo:
[php]
<?php
$query = "SELECT nick FROM nick_utente WHERE utente = " . $_SESSION['MM_Username'];
$result = mysql_query($query, $globalarea);
while ($array = mysql_fetch_array($result))
{$arr_stripped = array_map("stripslashes", $array);
list($nick) = $arr_stripped; ?>
<ul><li><?=$nick?></li></ul>}
?>
[/php]e ricevo questo messagio di errore:
**Parse error**: syntax error, unexpected $end in **/.../privata.php** on line **68**
sono sicuro che è una stupidaggine (come un tag non chiuso) però non so cosa possa essere :bho:
-
$arr_stripped = array_map("stripslashes", $array);
list($nick) = $arr_stripped; ?>
<ul><li><?=$nick?></li></ul>
<?php
}
?>devi riaprire il tag php prima dell'ultima graffa
keiske
-
ok fatto.
nuovo errore:**Warning**: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in **/../privata.php** on line **57**
ehm...
ok, scusate ma sto veramente andando per tentativi...
-
Si direbbe che la tua query non dia risultati, mi dà da pensare quel $globalarea nell'esecuzione della query... ad ogni modo metti un
if($result) {
}
a inglobare tutto il ciclo while... e controlla che la tua query dia un risultato...
keiske
-
mhm mi sa che il problema è più a monte.
come si fa a includere una variabile in una query? perchè mi sa che sbaglio nello scrivere la select...
-
SELECT nome_campo FROM nome_tabella WHERE nome_campo = '$variabile'
SELECT nome_campo FROM nome_tabella WHERE nome_campo = 'stringa'le variabili così come le stringhe normali tra apici singoli... se passi una variabile di tipo $_VARS['var'] ti consiglio di assegnarla prima all'inizio della pagina:
if(isset($_VARS['var]))
$var = $_VARS['var];
else
$var = "";E poi usi $var (volendo nell'isset di prima puoi anche mettere l'escaping della stringa per aumentare la sicurezza)
-
la query sarebbe cosi corretta:
[php]$query = "SELECT nick FROM nick_utente WHERE utente = '$_SESSION['MM_Username']'";[/php]
-
@Thedarkita said:
la query sarebbe cosi corretta:
[php]$query = "SELECT nick FROM nick_utente WHERE utente = '$_SESSION['MM_Username']'";[/php]anche in questo modo mi da' lo stesso degli errori..
a questo punto credo che il problema sia nello script relativo all'accesso...
quindi prima devo risolverlo per andare avanti..
cose faccio continuo in questo thread oppure ne apro un'altro?mi servirebbe poter creare una semplice area riservata e avere dei gruppi di utente (in particolar modo l'admin -cioè io- poter avere accesso a determinate pagine).
ho visto che qua sul sito c'è già una script, ma a quanto pare ha dato un po' di problemi a non poche persone...grazie veramente a tutti per l'aiuto.
-
Prepara una semplice query che prenda i dati che passi al form di login e in caso di riscontro user/password nel db setta una variabile di sessione con l'id di chi si è loggato...
Poi un file sicurezza.php nel quale cerchi la variabile di sessione e se c'è tutto ok, mentre se non c'è chiami la pagina iniziale... poi la sicurezza.php la metti require in ogni pagina che vuoi "proteggere" e per le pagine che vuoi vedere solo tu come admin metti che la variabile di sessione non solo esista ma sia quella relativa al tuo id/nick...
keiske
-
allora, io credo di diventarci scemo.
non riesco in nessun modo a visualizzare i risultati.
ho usato questo codice:
[php]
<body>
<!-- area riservata -->
<?php
$sql = 'SELECT * FROMnick_utente
LIMIT 0, 30 ';
$result = mysql_query($sql);
print ($result);
?>
</body>
[/php]
non mi torna neanche un risultato! la query è corretta, PER FORZA. L'ho copiata da phpMyAdmin e poi mi sembra basilare...
allora, se mi spiegate perchè non mi viene fuori nulla?
(p.s. ovviamente la tabella non è vuota, c'è dentro un record.. e ho impostato come chiave primaria il campo utente...)
-
quella è una query dovrebbe stamparti #resource...
devi usare altre funzioni come mysql_fetch_array per spampare il contenuto, oppure mysql_num_rows per contare il numero di record
-
già... il $result è un array... non puoi stamparlo
per vedere se ci sono risultati, alla grezza fai
if(mysql_num_rows($result))
echo "ci sono risultati";Per vedere i risultati in dettaglio invece usi come ha detto dark fetch_array
keiske
-
ho fatto un paio di prove e ho avuto conferema...
è proprio come pensavo: è lo script del login che fa casino e mi impalla tutto quanto...
prima devo sistemare questo, poi dopo tutto il resto viene da se
cmq grazie a tutti quanti
-
allora, alla fine, picchia e mena, ci sono riuscito.
paradossalmente complicando le cose.
ecco il codice:
[php]
<?php
$result = mysql_query("SELECT sitoFROMutente_sito
WHERE nick = (SELECT nick FROM nick_utente WHERE utente = '".$_SESSION['username']."')");
for ($i = 1; $i <= mysql_num_rows($result); $i++)
{
$riga = mysql_fetch_assoc($result);
if ($i == mysql_num_rows($result))
{
print ('"' . $riga["sito"] . '"');
}
else
{
print ('"' . $riga["sito"] . '",');
}
}?>
[/php]come avrete già capito ho un po' di problemi nel gestire il risultato di una query...
:bho: