[RESOLU] Je voudrais sortir de la boucle foreach au bon moment

ViPHP
AB
ViPHP | 5818 Messages

26 sept. 2011, 02:58

Je sais d’où ça viens, ça viens des données qu'on essais de lire a lors qu'elle ne sont pas desérialisées. c'est pour ca que j'ai demander un exemple avec données désérialisées.
Non, moogli t'a donné la bonne réponse.
Ton problème vient du fait que tu as essayé l'algo de sirakawa sans adapter ton code et donc tu te retrouve avec une ressource quand tu utilise mysql_query (pour la deuxième fois).

Il est très conseillé d'écrire ta requête pour ensuite l'exécuter (comme le suggère sirakawa ) donc cela donne :
if(isset($_GET['id']))
{
    $id = intval($_GET['id']);

    $sqlbuddy = "SELECT friends FROM users WHERE uid = '". $id ."'";

    $resultat = mysql_query($sqlbuddy) or die (mysql_error());

    if ($row = mysql_fetch_assoc($resultat))
      {
           $friends = unserialize($row["friends"]);
          // + suite du code que je t'ai montré pour la désérialisation et l'update 
      }
      else
     {
          echo htmlspecialchars($_GET['id']).' n\'a pas de correspondance dans friends';
      }
}
Notes que j'ai casté ta variable en entier pour protéger ta requête mais normalement on utilise mysql_real_escape_string

Bon si avec ça tu n'y arrive pas ...

Eléphanteau du PHP | 45 Messages

26 sept. 2011, 09:53

Tu m'a écrit dans le code : // + suite du code que je t'ai montré pour la désérialisation et l'update
Mais seulement je ne sais pas de quel partie de code tu veux parler. Dis moi donc quel partie du code. quoi qu'il en soit, il est toujours plus pratique d’écrire un code en entier plutôt que de laisser deviner. Peut tu m’écrire un code entier et correcte ?

Eléphanteau du PHP | 45 Messages

26 sept. 2011, 11:41

Ok j'ai trouver ton code, celui dont tu fais référence dans le ton code source, (je n'avais pas parcouru toutes les reponses sur le forum.) Je vais y réfléchir et m’intéresser de plus prés à la fonction in_array.

Eléphanteau du PHP | 45 Messages

26 sept. 2011, 12:27

J'ai fais ce code, il à l'air de bien fonctionner, je vais continuer.
<?php
include_once 'includes/db.php';
include_once 'includes/session.php';
if(isset($_GET['id']))
	{
	$id = intval($_GET['id']);
	$sqlbuddy = "SELECT friends FROM users WHERE uid = '". $id ."'";
   $resultat = mysql_query($sqlbuddy) or die (mysql_error());

   if ($row = mysql_fetch_assoc($resultat))	{
	   $friends = unserialize($row["friends"]);
		if (isset ($friends[0]) )	{
			if (in_array($uid,$friends))
				{
				echo "ami";
				} else {
							echo htmlspecialchars($_GET['id']).' n\'a pas de correspondance dans friends';
						 }
			} else {
						echo "Cellule vide";
					 }
		} else {
					echo "pas de résultats dans la requette";
				 }
}

?>

Eléphanteau du PHP | 45 Messages

26 sept. 2011, 13:30

J'ai intégré le code au projet web. il fonctionne bien mais c'est seulement lorsqu'on rentre une id inexistant dans la base de donnée (par le paramètre get) (page.php?id=9) par exemple, le programme m'affiche une erreur. En fait ce code marche bien mais ce problème viens du fait que je n'ai pas mis de condition si get id n'existe pas dans la base de donnée. De ce fais je vais en mettre une.

Mammouth du PHP | 2278 Messages

26 sept. 2011, 20:59

Pour deserialiser, comme tu dis, il faudrait avoir serialisé, c'est à dire savoir comment est renseignée la BDD....
Je me suis déjà tapé de créer une bdd pour ce test, de constater que tout fonctionnait parfaitement SANS ce satané deserialize... Je n'irai sans doute pas plus loin...
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphanteau du PHP | 45 Messages

26 sept. 2011, 22:11

Pour deserialiser, comme tu dis, il faudrait avoir sérialisé, c'est à dire savoir comment est renseignée la BDD....
Ton test n'a pas fonctionné car les données de ta base ne sont pas compressés (sérialisés). Dans mon cas les données sont déjà compressés. Ça marche très bien. sinon tu peux toujours modifier le code. Tu a du courage pour avoir créer une database pour ça. La page complète marche à merveille. Elle est complexe, il y a beaucoup de fonctions. Les ajouts d'amis et les autorisations d’accès aux ressources sont désormais terminés. Maintenant je dois m'occuper du reste.

Eléphanteau du PHP | 45 Messages

05 oct. 2011, 20:53

Si vous voulez voir la page définitive, il vous faut aller sur http://jolygialo.com. Cet exemple est mis en application sur la page friends.php. Il vous faut créer un compte pour pouvoir y accéder.