bacheca interazione tra utenti stile facebook ...

Fighissimooooo ragazzi finalemnte imparo qualcosa di nuovo :)

allora il mio codice è questo :
PHP:
<?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)) {

Il codice postato da borgo e questo:

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);    
$ris=mysql_query($query);//*******!!!!!!!!!!!!*******non vedo questa istruzione 
   
while ($joke = mysql_fetch_array($ris)) {  //$ris al posto di $query

Mi fate capire la differenza delle due query ?? o meglio

a cosa serve aggiungere questo ulteriore codice per il ciclo while ?? di solito mi bastava mettere solo il ciclo while ??

PHP:
$ris=mysql_query($query)

grazie e scusate ma mi piace anche capire i miei sbagli per migliorare il mio codice...
 
Non so se te ne sei accorto, ma la variabile $query è solamente una stringa contenente del codice SQL, quindi non viene eseguita. È quello che hai sempre fatto quando eseguivi query SQL nel database, cioè:
PHP:
$sql = 'codice sql';
$query = mysql_query($sql) or die(mysql_error());
Oppure:
PHP:
$query = mysql_query('codice sql') or die(mysql_error());
Comunque dai una sistemata a quella pagina (anche se è un lavoro arduo, perché hai mischiato PHP e HTML in una maniera allucinante):
PHP:
<?php
include 'dbc.php';
page_protect();
?>
<!DOCTYPE html>
<html>
    <head>
        <title>My Account</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <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">&nbsp;</td>
            </tr>

            <tr>
                <td width="160" valign="top">
                    <?php
                    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()) {
                    ?>
                        <p><a href="admin.php">Admin CP</a></p>
                    <?php
                    }
                    ?>

                    <p>&nbsp;</p>
                    <p>&nbsp;</p>
                    <p>&nbsp;</p></td>
                    
                    <td width="732" valign="top"><p>&nbsp;</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 my account's page</p>

                    <br />
                    <br />
                    <br />

                    <?php
                    $id_u = $_SESSION['user_id'];
                    $sql = "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')";
                    $query = mysql_query($sql) or die(mysql_error());

                    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">&nbsp;</td>
            </tr>

            <tr>
                <td colspan="3">&nbsp;</td>
            </tr>
        </table>
    </body>
</html>
 
Ultima modifica:
ciao
come detto ti invio un'altra osservazione.
mi è saltata agli occhi la tabella relationship che hai postato

mi sembra che alcuni post fa' ti avevo consigliato alcune cose e, se quanto hai riportato è il contenuto della tabella, secondo me, ci sono alcuni record che NON dovrebbero esserci:
(12, '54', '57', 'S'), in quanto uguale al 9
(13, '57', '54', 'S'), in quanto sia l'utente 57 e 54 hanno già espresso amicizia (vedi 9)
(14, '57', '57', 'N'), in quanto non dovrebbe essere possibile richiedere l'amiciza con se stessi
(questo indipendentemente che amicizia sia S o N)

per ora ho notato questi (non ho approfondito ulteriormente)

p.s. @alex
secondo te prima o poi searedone non dovrebbe pagarci da bere?
 
Ragazzi andata ...

Prima o poi avrete i vostri drink free :) davvero promesso siete molto ma molto gentili ....

Si Borgo ai ragione, ma come ti ho detto più volte purtroppo sono un provetto programmatore, e tra l'altro lo faccio per pure piacere perchè mi piace da impazzire,
ma avendo pochissimo tempo a mia disposizione, e non avendo mai avuto delle amicizie in comune che sanno programmare in php, la mia conoscenza deriva da
alcuni libbri ( ne ho comprati circa 5 in 5 mesi ) da scopiazzature di codici che poi ho implementato ecc ecc , prima o poi arrivero' anche a fare i controlli che tu mi hai descritto promesso, e prima o poi arrivero a scrivere il codice di getto senza dover prendere spunto da libri o codici, ma ti giuro che in 6 mesi avendo davvero a disposizione pochi spiccioli di minuti la sera stanco da lavoro ho fatto davvero molto per me ....

Anzi sono riuscito a volte a sistemare i tuoi codici già perfetti e a farli funzionare arrivandoci con logica...

ma abbiate pazienza, cmq solo per curiosità penso che quel controllo posso farlo con una if giusto ??? o come al solito non ho capito una h :)

cmq davvero non so di dove siete ma per me se mi dite anche in pvt la località alla prima occasione vi offro un ottimo drink .....


PS Sarebbe un sogno creare una piccola silicon valley di geni come voi a MIlano ...... magari so che c'è ne una anche a nizza
 
lo so non mi dite niente ... avevate ragione voi e funzionaaaaaaaa

ora come faccio a dare diritto di replica al commento ??? ho provato a fare così ma mi sa che non funge bene :(

PHP:
<?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">&nbsp;</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>&nbsp;</p>
      <p>&nbsp;</p>
      <p>&nbsp;</p></td>
    <td width="732" valign="top"><p>&nbsp;</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[''];?>

<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')";  
 
$ris=mysql_query($query);//*******!!!!!!!!!!!!*******non vedo questa istruzione 
   
while ($joke = mysql_fetch_array($ris)) {
$rich=$joke['user_id']; 
            $query_ut=mysql_query("SELECT * FROM users WHERE id=$rich");//non so come si chiama esattamente il campo id in user 
            //verifica e correggi eventualmente 
            $joke_ut=mysql_fetch_array($query_ut); 

$user_id = $joke['user_id'];    
$user_name = $joke['user_name'];
$commento = $joke['commento'];


echo "$user_name<br /><br />"; 
 echo "<h2> ".$joke_ut['user_name']." </h2>";
 
 echo "$commento<br /><br />"; 
 
 } 




?>

<?php echo $_SESSION['user_id'];  
require ("db_connect.php"); 


if(isset($_POST['submit'])){//****verifico se è stato premuto il submit 
    $commento=$_POST["commento"];   
    $commento=ereg_replace("\n","<br>",$commento); //ereg_replace (come tutti gli ereg) è deprecato usa preg_replace   
    if(get_magic_quotes_gpc()) { 
        $commento=stripslashes($commento);    
    }    
    $commento =mysql_real_escape_string($commento);    
    $insert = mysql_query("INSERT INTO annunci SET  commento='$commento', user_id=".$_SESSION['user_id']."");    
}//fine if submit - penso che dovrebbe finire qui, comunque alla fine di tutte le azioni che sosno "azionate" dal form 
?>     
	 
 <div class="content">
    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
     
      <p>
        <label for="commento"></label>
        <textarea name="commento" id="commento" cols="55" rows="20"></textarea>
      </p>
      <p>
        <input type="submit" name="submit" id="submit" value="Invia Commento" />
      </p>
    </form>
    </div>
    
    
   <?php 
   
   
require ("db_connect.php"); 



$result = mysql_query("SELECT * FROM annunci, users WHERE user_id=".$_SESSION['user_id']. " AND  user_id=users.id 
"); 


//recuperiamo i dati da stampare 


while ($records = mysql_fetch_array($result)) {  


$commento = $records['commento'];
$user_name = $records['user_name'];
$ts = $records['ts'];
 echo "<a href=\"myprofile.php?user_name=$user_name\">$user_name</a>"; 
echo "<h2> <img src='immagini/.gif' width='30' height='50' /> $user_name</h2> "; 
echo "<h6>$commento</h6> "; 
echo "<h6>$ts</h6> "; 



} 

?>


      </td>
    <td width="196" valign="top">&nbsp;</td>
  </tr>
  <tr> 
    <td colspan="3">&nbsp;</td>
  </tr>
</table>

</body>
</html>
 

Discussioni simili