- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problemino con interrogazione al database
-
@RoxasShadow said:
In questo caso la query dovrebbe "echare" (accedendo nel profilo di Roxas Shadow) i nickname Nick1 e Nome Utente poichè sono entrambi accettati (1 = true) e non rifiutati e/o cancellati (0 = false).
Secondo me è un approccio sbagliato proprio dalla progettazione, modifica il campo in modo che accetti solo i valori A,R,C ovvero Accettato, Rifiutato, Cancellato (mysql type enum) e poi modifica il form di conseguenza.
La query poi diventa una sempliceSELECT DISTINCT id1, id2 WHERE (id1 = XXX OR id2 = XXX) and stato = A
al posto di XXX mettici le tue condizioni.
Ciao
-
Ti ringrazio infinitamente mferraroni, lo script funziona che una meraviglia.
Alla prossima.
-
Ops, ho un problema
La query è questa
$query=mysql_query('SELECT DISTINCT * FROM amicizie WHERE (id1 = "'.$nickname.'" OR id2 = "'.$nickname.'") AND stato = "A"');
while($result = mysql_fetch_assoc($query)) {
if($result['id1'] == $result['id2']) { continue; }
echo $result["id2"].', ';
}Il database è questo
h ttp:/ /ww w.technicianpokemon.com/old-hosting/images/db2.png
Io vorrei visualizzare "Linkino" ma visualizzo "Roxas Shadow" e lo stesso visualizzerà l' utente che ha $nickname impostato su "Linkino".
Per piacere aiutatemi
-
@RoxasShadow said:
Io vorrei visualizzare "Linkino" ma visualizzo "Roxas Shadow" e lo stesso visualizzerà l' utente che ha $nickname impostato su "Linkino".
Ciao cambia
echo $result["id2"].', ';
con
echo $result["id1"].', ';
poi un consiglio, cerca di non utilizzare l'asterisco (*) nelle query che non è il massimo in fatto di performance, ma specifica sempre i campi che ti servono, in questo caso ti servono solo id1 ed id2
Ciao
Matteo
-
Si ma in questo caso cambia per me, ma non per tutti: mi spiego.
Con id1 io accedendo con $nickname a Linkino visualizzo "Linkino", la stessa cosa accade accedendo con $nickname a Roxas Shadow visualizzo "Roxas Shadow".
A me servirebbe che se accedessi con $nickname "Linkino" visualizzassi "Roxas Shadow" e viceversa, accedendo con $nickname "Roxas Shadow" visualizzassi "Linkino".Grazie per il tempo e l' aiuto dedicatomi.
-
@RoxasShadow said:
Si ma in questo caso cambia per me, ma non per tutti: mi spiego.
Con id1 io accedendo con $nickname a Linkino visualizzo "Linkino", la stessa cosa accade accedendo con $nickname a Roxas Shadow visualizzo "Roxas Shadow".
A me servirebbe che se accedessi con $nickname "Linkino" visualizzassi "Roxas Shadow" e viceversa, accedendo con $nickname "Roxas Shadow" visualizzassi "Linkino".Se ho capito bene la struttura della tabella id1 è il nick e id2 è il nome dell'utente, quindi tu vuoi far accedere sia con il nome sia con nick, e visualizzare sempre il nick, giusto?
Ciao
-
E' un sistema di amicizie.
Id1 è il richiedente, Id2 è il destinatario dell' amicizia.
Se accedo come richiedente dovrò vedere Id2 e se accedo come destinatario vedrò Id1.
-
@RoxasShadow said:
E' un sistema di amicizie.
Id1 è il richiedente, Id2 è il destinatario dell' amicizia.
Se accedo come richiedente dovrò vedere Id2 e se accedo come destinatario vedrò Id1.Ok.
allora puoi fare così:
$whoami = <nickname con cui sono dentro al sistema> $query=mysql_query('SELECT DISTINCT * FROM amicizie WHERE (id1 = "'.$nickname.'" OR id2 = "'.$nickname.'") AND stato = "A"'); while($result = mysql_fetch_assoc($query)) { if($result['id1'] == $whoami) { // se sono richiedente... echo $result['id2']; // ...vedo id2 } else { // altrimenti.... echo $result["id1"]; // ...vedo id1 } ;
Spero che sia chiaro.
Ciao
Matteo
-
Funziona finalmente!
Ti ringrazio infinitamente, a presto.
-
@RoxasShadow said:
Funziona finalmente!
Ti ringrazio infinitamente, a presto.
Di nulla, alla prox.
Ciao