Problème affichage résultats sql

ViPHP
ViPHP | 5462 Messages

15 nov. 2010, 18:04

ce sont toujours les deux même erreurs... seuls les numéros de lignes changent puisque j'ai ajouté deux lignes.
et le var_dump($user); ?

Eléphant du PHP | 70 Messages

15 nov. 2010, 18:11

Ah je viens de voir cette erreur ...


Warning: (null)() [function.mysql-free-result]: 7 result set(s) not freed. Use mysql_free_result to free result sets which were requested using mysql_query() in Unknown on line 0

ViPHP
ViPHP | 5462 Messages

15 nov. 2010, 18:15

c'est pas trop grave ca, a chaque fois tu tu fait un requete il faut liberer la ressource quand ta choper les resultats ducoup faut faire par exemple
function rech_user_enregistrer($login_user)
{
    $conn = db_connect();
    $sql = "SELECT * FROM offre  where login_user = '$login_user'";
    $tab = array();
    while( $tab[] = mysql_fetch_array($result) );
    mysql_free_result($result);
    return $tab;
}
 

Eléphant du PHP | 70 Messages

15 nov. 2010, 18:25

j'ai encore plus d'erreur la ...
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /homez.333/.../www/../fonctions.php on line 228

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /homez.333/.../www/../fonctions.php on line 229

ligne 228: while( $tab[] = mysql_fetch_array($result) );
ligne 229: mysql_free_result($result);

ViPHP
ViPHP | 5462 Messages

15 nov. 2010, 18:31

y'a pas le mysql_query
function rech_user_enregistrer($login_user)
{
    $conn = db_connect();
    $sql = "SELECT * FROM offre  where login_user = '$login_user'";
    $result = mysql_query($sql, $conn);
    $tab = array();
    while( $tab[] = mysql_fetch_array($result) );
    mysql_free_result($result);
    return $tab;
}

Eléphant du PHP | 70 Messages

15 nov. 2010, 18:38

ça ne fonctionne pas... ça me supprime des informations. Les anciens résultats ne s'affichent plus désormais.
Donc mes résultats sont vierges si je retire
$result = mysql_query($sql, $conn);
return(mysql_fetch_array($result));

ViPHP
ViPHP | 5462 Messages

15 nov. 2010, 18:42

si tu fais un var_dump de ce que rend ta fonction ca donne quoi ?

Eléphant du PHP | 70 Messages

15 nov. 2010, 18:57

plus rien ne s'affiche...

ViPHP
ViPHP | 5462 Messages

15 nov. 2010, 18:59

plus rien ne s'affiche...
montre ce que tu fais

Eléphant du PHP | 70 Messages

15 nov. 2010, 19:46

Ma fonction.php :
function rech_user_enregistrer($login_user)
{
    $conn = db_connect();
    $sql = "SELECT * FROM offre  where login_user = '$login_user'";
    $result = mysql_query($sql, $conn);
    $tab = array();
    while( $tab[] = mysql_fetch_array($result) );
    mysql_free_result($result);
    return $tab;
}
Ma page d'affichage :
<?php
if ($_SESSION['utilisateur'])
        {
 include_once("include_fns.php");
 $utilisateur = $_SESSION['utilisateur'];
       
 $user = rech_user_enregistrer($utilisateur);
         if ($_SESSION['utilisateur'] ) {
                               
//  si NULL
       
        if ($user[publier] == NULL) {

                        echo "<hr>";

        echo "&nbsp; à valider <br>&nbsp; <b style='color:#F00'>".var_dump(stripslashes(htmlentities($user[titre])))."</b>";
        }
        else {

echo "<hr>";
//  si non NULL
        echo "&nbsp;Validé";
        echo "<li class=\"a-blanc\"><a href=\"index.php?affichage=articlepefac&id=".var_dump(stripslashes(mb_strtoupper($user[id]))."\">".stripSlashes(htmlentities($user[titre])))."</a></li>"; }
       
        echo "<br>";
 ?>
 

ViPHP
ViPHP | 5462 Messages

15 nov. 2010, 20:10

mais c'est le code qu'au début ca....

Eléphant du PHP | 70 Messages

15 nov. 2010, 20:43

voilà j'ai tout réuni en un seul code :
<?php
if ($_SESSION['utilisateur']) {
	$conn = db_connect();
    $sql = "SELECT *
        FROM offre
        LEFT JOIN dos ON dos.commun=offre.commun
		LEFT JOIN adresses ON adresses.commun=dos.commun
		LEFT JOIN noms ON noms.commun=adresses.commun
		LEFT JOIN adherent ON adherent.commun=noms.commun
        where login_user = '$login_user'";
  $resultat = mysql_query($sql, $conn);
  $users = mysql_fetch_array($result);
  
  
//--------------------------------------FIN CONNEXION A LA BASE----------------------------------	
	
//  si NULL
	
	if ($user[publier] == NULL) {

			echo "<hr>";

	echo "à valider";
	while ($users = mysql_fetch_array($resultat)) {
	echo "<b style='color:#F00'>".stripslashes(htmlentities($users[titre]))."</b>"; 
	} }
	else {

echo "<hr>";
//  si non NULL
		
			echo "validé";
			while ($users = mysql_fetch_array($resultat)) {
	echo "<li class=\"a-blanc\"><a href=\"index.php?id=".stripslashes(mb_strtoupper($users[id]))."\">".stripSlashes(htmlentities($users[titre]))."</a></li>"; } }
	
	echo "<br>";
		

	}
	?>
les affichages se font bien... le problème maintenant c'est que les titres s'affiche en double au lieu d'une seule fois.

ViPHP
ViPHP | 5462 Messages

15 nov. 2010, 21:20

et t'as un $users = mysql_fetch_array($result); en trop, t'as toujours pas mis les quote, pour les resultat en double fait ta requete dans phpmyadmin et tu comprendras

Eléphant du PHP | 70 Messages

15 nov. 2010, 22:26

Voilà. c'est presque bon!
il y a juste un problème au niveau du NULL et NON NULL.
le "à valider" est tout le temps apparent s'il n'y a pas de publication.
En revanche si la valeur est non NULL le à validé se retire (donc ça c'est bon), mais lorsque je me log je suis obligé d'actualiser la page pour que les titres soient visibles...

	<?php
    $conn = db_connect();
  $sql = "SELECT *
        FROM offre
        LEFT JOIN adherent ON adherent.commun=offre.commun
        where login_user = '$login_user'";
  $resultat = mysql_query($sql, $conn);
 
//--------------------------------------FIN CONNEXION A LA BASE----------------------------------	
	
//  si NULL
	
	if ($user["publier"] == NULL) {

			echo "<hr>";
			

	echo "à valider"; 
	while ($users = mysql_fetch_array($resultat)) {
	echo "<b style='color:#F00'>".stripslashes(htmlentities($users['titre']))."</b>"; }
	}
	else {

echo "<hr>";
//  si non NULL
		
			echo "vlidé";
			while ($users = mysql_fetch_array($resultat)) {
	echo "<li class=\"a-blanc\"><a href=\"index.php?id=".stripslashes(mb_strtoupper($users['id']))."\">".stripSlashes(htmlentities($users['titre']))."</a></li>"; }  }
	
	echo "<br>";
    ?>

ViPHP
ViPHP | 5462 Messages

15 nov. 2010, 22:48

faut virer le 2eme while ($users = mysql_fetch_array($resultat))
tu comprends le while ?