Visualizzare dati da mysql a seconda dell id

ahmadpour

Utente Attivo
10 Nov 2013
35
0
0
Ciao a tutti non sono molto bravo con il php però volevo creare un form di login che quando accedi ti appare il nome con le informazione dell account loggato. Il login funziona bene però quando uno accede vengono visualizzate le informazioni di tutti gli utenti, io invece vorrei solamente che visualizzi le informazioni dell utente loggato e non di tutti. Come posso fare??

Questo è il mio codice php:
PHP:
<?php

mysql_connect("localhost", "root", " ") or die(mysql_error());  
mysql_select_db("my_friechat") or die(mysql_error());  
$informazioni = mysql_query("SELECT * FROM users")
or die(mysql_error()); 

echo "<table border cellpadding=3>";

while($info = mysql_fetch_array($informazioni)) 
 {  
 echo "Username: ".$info['username'] . "</td> "; 
 echo "<th>Email:</th> <td>".$info['email'] . " </td></tr>"; 
 } 

?>

Questa è la mia tabella:
HTML:
id          username          email
1           sam               [email protected]
2           gianfranco        [email protected]

Ciao e grazie mille :D
 
ciao,
forse ti basta aggiungere la clausola where alla select

SELECT * FROM users where ... per esempio ... username="sam" ... oppure ... email="[email protected]"

ovviamente sam o [email protected] saranno le variabili che contengono il nome dell'utente o la sua mail

ciao


Ciao ti ringrazio è solo che se scrivo il codice che mi hai detto appare il nome ahmadpour e le sue informazioni a tutti gli utenti che accedono. Devo riuscire a trovare un modo che le informazioni cambiano in base a colui che accede.
 
Ciao ti ringrazio è solo che se scrivo il codice che mi hai detto appare il nome ahmadpour e le sue informazioni a tutti gli utenti che accedono. Devo riuscire a trovare un modo che le informazioni cambiano in base a colui che accede.

PHP:
mysql_connect("localhost", "root", " ") or die(mysql_error());  
mysql_select_db("my_friechat") or die(mysql_error());   

// Template della query
$sql = "SELECT * FROM users WHERE email = '%s'";

// Sostituisco %s con la mail dell'utente corrente 
$query = sprintf($sql, mysql_real_escape_string($_POST['email']));

// Eseguo la query
$result = mysql_query($query) or die(mysql_error()); 

echo "<table border cellpadding=3>";

while($info = mysql_fetch_array($result)) 
 {  
 echo "Username: ".$info['username'] . "</td> "; 
 echo "<th>Email:</th> <td>".$info['email'] . " </td></tr>"; 
 }  


// Libero le risorse
mysql_free_result($result);
 
inoltre non dovresti neanche fare il while, il login è legato ad un solo utente quindi devi verificare che esiste quell'utente (quindi login ok) e prendi le informazioni restituite dal db di quel utente , quindi senza while:

PHP:
$res=mysql_fetch_assoc($query);
echo $res['username']." > ".$res['email'];
 
PHP:
mysql_connect("localhost", "root", " ") or die(mysql_error());  
mysql_select_db("my_friechat") or die(mysql_error());   

// Template della query
$sql = "SELECT * FROM users WHERE email = '%s'";

// Sostituisco %s con la mail dell'utente corrente 
$query = sprintf($sql, mysql_real_escape_string($_POST['email']));

// Eseguo la query
$result = mysql_query($query) or die(mysql_error()); 

echo "<table border cellpadding=3>";

while($info = mysql_fetch_array($result)) 
 {  
 echo "Username: ".$info['username'] . "</td> "; 
 echo "<th>Email:</th> <td>".$info['email'] . " </td></tr>"; 
 }  


// Libero le risorse
mysql_free_result($result);


Ciao ho copiato il codice che mi hai postato ma non funziona, mi viene scritto un errore: ( ! ) Notice: Undefined index: email in C:\wamp\www\ on line 44 .
Cosa significa questo errore?? scusa é che io il php non lo so tanto. grazie :)
 
Ciao ho copiato il codice che mi hai postato ma non funziona, mi viene scritto un errore: ( ! ) Notice: Undefined index: email in C:\wamp\www\ on line 44 .
Cosa significa questo errore?? scusa é che io il php non lo so tanto. grazie :)


ciao ahmadpour, mi sembra di capire che sei alle prime armi... :D

il mio era solo un esempio che presupponeva che che l'email dell'utente fosse disponibile all'interno della fariabile globale $_POST all'indice "email", cosa che a quanto leggo non avviene, infatti phph ti dice che l'indice "email" non è definito o detto più semplicemente, $_POST["email"] non esiste.

Ora quando un tuo utente si logga sul tuo sito, dove salvi le informazioni? forse nelle sessioni? in quel caso prova a sostituire $_POST["email"] con $_SESSION["email"], ovviamente se l'indice non si chiama "email" devi cambiarlo con il nome giusto... cmq il concetto è che al posto di $_POST["email"] devi metterci la mail dell'utente... tutto qui...
 
ciao ahmadpour, mi sembra di capire che sei alle prime armi... :D

il mio era solo un esempio che presupponeva che che l'email dell'utente fosse disponibile all'interno della fariabile globale $_POST all'indice "email", cosa che a quanto leggo non avviene, infatti phph ti dice che l'indice "email" non è definito o detto più semplicemente, $_POST["email"] non esiste.

Ora quando un tuo utente si logga sul tuo sito, dove salvi le informazioni? forse nelle sessioni? in quel caso prova a sostituire $_POST["email"] con $_SESSION["email"], ovviamente se l'indice non si chiama "email" devi cambiarlo con il nome giusto... cmq il concetto è che al posto di $_POST["email"] devi metterci la mail dell'utente... tutto qui...

Ciao ho provato a cambiare $_POST con $_SESSION ma niente.. mi dava sempre che l'indice email non é definito. Dopo ho provato a togliere $_POST["email"] e mettere l'email dell utente e quindi funzionava peró quando accedevo con un altro utente l'email rimaneva la stessa senza cambiare. Lo só che sono alle prima armi.. ho 14 anni. Ma un modo piu semplice non c'é? Ciao e grazie
 
Ciao
...ho provato a cambiare $_POST con $_SESSION ...
guarda che non basta quello, perche la sessione deve essere valorizzata.
da quello che capisco nella pag in cui fai il log, se il log è ok, devi valorizzare la sessione che poi potrai utilizzare
ricorda una cosa: quando usi le sessioni, in ogni pagina che le utlizza, la prima riga (prima di tutto) deve avere l'istruzione
PHP:
<?php
session_start();
?>
 
Ciao

guarda che non basta quello, perche la sessione deve essere valorizzata.
da quello che capisco nella pag in cui fai il log, se il log è ok, devi valorizzare la sessione che poi potrai utilizzare
ricorda una cosa: quando usi le sessioni, in ogni pagina che le utlizza, la prima riga (prima di tutto) deve avere l'istruzione
PHP:
<?php
session_start();
?>

Ciao ho scritto

PHP:
<?php
session_start();
?>

ma comunque non funziona.
 
Posta come fai il login
è li che devi settare la sessione
PHP:
$_SESSION['idUtente'] = $row['idUtente'];
poi puoi fare la query cosi
PHP:
$query = "SELECT * FROM users WHERE idUtente = " . $_SESSION['idUtente'];
Ricordati che le pagine che usano le sessioni devono iniziare con session_start();
 

Discussioni simili