string(247) "SELECT * FROM annunci AS p WHERE p.id_utente = '54' OR p.id_utente IN (SELECT user_1 FROM relationships AS r WHERE r.user_2 = '54' AND r.amico = 'S') OR p.id_utente IN (SELECT user_2 FROM relationships AS r WHERE r.user_1 = '54' AND r.amico = 'S')"
Allora nella bacheca devono esserci i messaggi dell' user_id ma tutti quelli che gli hanno chiesto amicizia devono poter vedere i suoi post e viceversa lui deve vedere quelli dei suoi amici.....
ciao
verifica (perchè non possiamo ricordarci tutto) come si chiama nella tabella annunci il campo dell'id dell'utente
perchè se in tabella annunci il campo si dovesse chiamare (es) id_pinco devi mettere
"SELECT * FROM annunci AS p WHERE p.id_pinco= '$id_u' OR p.id_pinco IN ecc....
$id_u=$_SESSION['user_id']; //come detto per scrivere con comodo
$query="SELECT * FROM annunci AS p WHERE p.id = '$id_u' OR p.id IN (SELECT user_1 FROM relationship AS r WHERE r.user_2 = '$id_u' AND r.amico = 'S') OR p.id IN (SELECT user_2 FROM relationship AS r WHERE r.user_1 = '$id_u' AND r.amico = 'S')";
string(224) "SELECT * FROM annunci AS p WHERE p.id = '54' OR p.id IN (SELECT user_1 FROM relationship AS r WHERE r.user_2 = '54' AND r.amico = 'S') OR p.id IN (SELECT user_2 FROM relationship AS r WHERE r.user_1 = '54' AND r.amico = 'S')"
di:
PHP:
$id_u=$_SESSION['user_id']; //come detto per scrivere con comodo
$query="SELECT * FROM annunci AS p WHERE p.id = '$id_u' OR p.id IN (SELECT user_1 FROM relationship AS r WHERE r.user_2 = '$id_u' AND r.amico = 'S') OR p.id IN (SELECT user_2 FROM relationship AS r WHERE r.user_1 = '$id_u' AND r.amico = 'S')";
var_dump($query);
Non puoi scrivere p.id perché si riferisce al campo che contiene l'ID dell'annuncio. Al posto di id devi inserire il nome del campo che contiene l'ID dell'autore dell'annuncio.
In un precedente script ho avuto problemi per id e ho cambiato in id_annuncio e cosi mi prendeva tutto precisamente.
Fatto questo appunto ti spiego un pochetto com'è fatto il tutto perchè forse o io non capisco quello che dici, o te non capisci quello che dico io
Allora io ho una tabella
annunci con i campi id, commento,ts ( timestamp ) e un collegamento alla tabella users con user_id
tabella users
soliti campi id, full_name, user_name ecc ecc
tabella relatioship
id, user_1, user_2, amico ( campo enum con default N modificabile a S
Ora tu continui a dirmi che devo passare l'id
alessandro1997
Non puoi scrivere p.id perché si riferisce al campo che contiene l'ID dell'annuncio. Al posto di id devi inserire il nome del campo che contiene l'ID dell'autore dell'annuncio.
E quindi io devo prenderlo perforza dall'user_id per recuperare il commento di pippo giusto ???
ora io vorrei che il post di pippo puo' vederlo minnye, pluto, paperino ( che sono amici ) ma non gastone ( che dato che sta antipatico a pippo non gli da' amicizia.
Detto questo spero che la cosa sia più chiara ( per il resto scusa ma non sono un mostro di php lo faccio per divertimento e sono un autodidatta, ma sopratutto lo faccio da 6 mesi e quando ho tanto tempo ho 30/35 minuti alla sera di media )
Aiutatemiiiiiiiiiiii questa cosa mi sta facendo impazzire ....
$query = "SELECT * FROM annunci AS p WHERE p.user_id = '$id_u' OR p.user_id IN (SELECT user_1 FROM relationship AS r WHERE r.user_2 = '$id_u' AND r.amico = 'S') OR p.user_id IN (SELECT user_2 FROM relationship AS r WHERE r.user_1 = '$id_u' AND r.amico = 'S')";
Non devi cambiare niente. È questa. O funziona o non funziona.
string(239) "SELECT * FROM annunci AS p WHERE p.user_id = '54' OR p.user_id IN (SELECT user_1 FROM relationship AS r WHERE r.user_2 = '54' AND r.amico = 'S') OR p.user_id IN (SELECT user_2 FROM relationship AS r WHERE r.user_1 = '54' AND r.amico = 'S')"
PHP:
$id_u=$_SESSION['user_id'];
$query = "SELECT * FROM annunci AS p WHERE p.user_id = '$id_u' OR p.user_id IN (SELECT user_1 FROM relationship AS r WHERE r.user_2 = '$id_u' AND r.amico = 'S') OR p.user_id IN (SELECT user_2 FROM relationship AS r WHERE r.user_1 = '$id_u' AND r.amico = 'S')";
var_dump($query);
Ti puo' aiutare se ti posto le tre tabelle ??? non capisco come mai non funziona ........
<?php
include 'dbc.php';
page_protect();
?>
<html>
<head>
<title>My Account</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="styles.css" rel="stylesheet" type="text/css">
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="5" class="main">
<tr>
<td colspan="3"> </td>
</tr>
<tr>
<td width="160" valign="top">
<?php
/*********************** MYACCOUNT MENU ****************************
This code shows my account menu only to logged in users.
Copy this code till END and place it in a new html or php where
you want to show myaccount options. This is only visible to logged in users
*******************************************************************/
if (isset($_SESSION['user_id'])) {?>
<div class="myaccount">
<p><strong>My Account</strong></p>
<a href="myaccount.php">My Account</a><br>
<a href="mysettings.php">Settings</a><br>
<a href="logout.php">Logout </a>
<p>You can add more links here for users</p></div>
<?php }
if (checkAdmin()) {
/*******************************END**************************/
?>
<p> <a href="admin.php">Admin CP </a></p>
<?php } ?>
<p> </p>
<p> </p>
<p> </p></td>
<td width="732" valign="top"><p> </p>
<h3 class="titlehdr">Welcome <?php echo $_SESSION['user_name'];?></h3>
<?php
if (isset($_GET['msg'])) {
echo "<div class=\"error\">$_GET[msg]</div>";
}
?>
<p>This is the my account page</p>
<?php echo $_SESSION['user_id'];?>
<br />
<br />
<br />
<?php
$id_u=$_SESSION['user_id'];
$query = "SELECT * FROM annunci AS p WHERE p.user_id = '$id_u' OR p.user_id IN (SELECT user_1 FROM relationship AS r WHERE r.user_2 = '$id_u' AND r.amico = 'S') OR p.user_id IN (SELECT user_2 FROM relationship AS r WHERE r.user_1 = '$id_u' AND r.amico = 'S')";
var_dump($query);
while ($joke = mysql_fetch_array($query)) {
$user_id = $joke['user_id'];
$user_name = $joke['user_name'];
$commento = $joke['commento'];
echo "$user_name<br /><br />";
echo "$commento<br /><br />";
}
?>
</td>
<td width="196" valign="top"> </td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
</table>
</body>
</html>
Ti ho postato tutto speriamo che riesci a risolvere ....
$id_u=$_SESSION['user_id'];
$query = "SELECT * FROM annunci AS p WHERE p.user_id = '$id_u' OR p.user_id IN (SELECT user_1 FROM relationship AS r WHERE r.user_2 = '$id_u' AND r.amico = 'S') OR p.user_id IN (SELECT user_2 FROM relationship AS r WHERE r.user_1 = '$id_u' AND r.amico = 'S')";
var_dump($query);
$ris=mysql_query($query);//*******!!!!!!!!!!!!*******non vedo questa istruzione
while ($joke = mysql_fetch_array($ris)) { //$ris al posto di $query