Probléme de requete et de variable

Résolu
Utilisateur anonyme - 9 avril 2005 à 20:02
aurelien0306 Messages postés 181 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 2 mars 2009 - 9 avril 2005 à 23:17
Bonjour, j'utilise cette fonction
pour faire un remplacement de caractéres :



$message2 = str_replace(array(" ;)", " :)", " :("), array("", "", ""), $Ligne['message']);



Seuelement les premieres valeur [ ;) :) :( ] et les secondes [ wunk.gif
wonk.gif ] doivent étre récupérer dans une table grave a une requete MySQL.

Le probléme c'est que je n'arrive pas a "mélanger" la fonction avec les
requete mysql.

J'ai essayer ça :



<?

$compt2 = '0';

$compt3 = '0';

$sql2 = mysql_query ("SELECT * FROM smiley ORDER BY ID DESC");

$verif2 = mysql_num_rows($sql2);

while ($Smile = mysql_fetch_array($sql2))
{

$sql3 = mysql_query ("SELECT * FROM smiley ORDER BY ID DESC");

$verif3 = mysql_num_rows($sql3);

while ($Smile2 = mysql_fetch_array($sql3))
{
$compt2++;
if ($verif2 !$compt2) { $virgule1 ', '; } else { $virgule1 = ''; }

$valeur1 = '"'.$Smile['text'].'"'.$virgule1.'';
$compt3++;
if ($verif3 !$compt3) { $virgule2 ', '; } else { $virgule2 = ''; }

$valeur2 = '""'.$virgule2.'';
}}



/////////////////////////////////////////////////////



$message1 = str_replace(array(

$valeur1

), array(

$valeur2

), $Ligne['message']);

?>



Mais ça ne donne rien.

Si quelqu'un a une idée !

Merci

11 réponses

aurelien0306 Messages postés 181 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 2 mars 2009
9 avril 2005 à 22:53
euh quand tu fais array($valeur1) il fait un tableau d'une chaine si je me trompe pas....

donc je crois pas que c ce que tu veux...

dans ta requete pkoi tu construis pas directement ton tableau? a chaque boucle tu fais un array_push($valeur1,$Smile['text'])

array_push($valeur2,
'""')



et donc str_replace($valeur1,$valeur2,$Ligne['message'])

et ça devrait marcher....

par contre tu m'expliquera pkoi deux fois la meme requete et tous ces compteurs....
3
aurelien0306 Messages postés 181 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 2 mars 2009
9 avril 2005 à 23:10
et par contre pourquoi tu fais tu rajoutes des guillemets avant et apres $Smile['text'] moi je ferais directement array_push($valeur1,$Smile['text'])


ça devrait marcher et donc $Smile['text'] serait déja une chaine....


dis moi quand tu as testé
3
aurelien0306 Messages postés 181 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 2 mars 2009
9 avril 2005 à 23:12
$valeur1 = Array();

$valeur2 = Array();

avant de faire ta boucle ça devrait marcher
3
aurelien0306 Messages postés 181 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 2 mars 2009
9 avril 2005 à 23:17
de rien ;) ps: oublie pas de cocher réponse acceptée ;)
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
aurelien0306 Messages postés 181 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 2 mars 2009
9 avril 2005 à 22:33
euh <mode blonde> désolé mais je vois pas très bien pourquoi tu
as besoin de faire deux fois la meme requete?</fin mode>
0
Utilisateur anonyme
9 avril 2005 à 22:43
En fait au depart j'avais séparer les deux requetes c'est pour ça :)



Le voici modifier :



<?

$compt2 = '0';

$sql2 = mysql_query ("SELECT * FROM smiley ORDER BY ID DESC");

$verif2 = mysql_num_rows($sql2);

while ($Smile = mysql_fetch_array($sql2))

{

$compt2++;

if ($verif2 != $compt2)

{

$virgule1 = ', ';

}

else

{

$virgule1 = '';

}

$valeur1 = '"'.$Smile['text'].'"'.$virgule1.'';

if ($verif2 != $compt2)

{

$virgule2 = ', ';

} else

{

$virgule2 = '';

}

$valeur2 = '""'.$virgule2.'';

}



$message1 = str_replace(array($valeur1), array($valeur2), $Ligne['message']);

?>

0
Utilisateur anonyme
9 avril 2005 à 23:06
J'ai chercher comment marche la fonction array_push,
http://www.nexen.net/docs/php/annotee/function.array-push.php
mais je ne vois pas trop comment faire.

<?
$sql2 = mysql_query ("SELECT * FROM smiley ORDER BY ID DESC");
$verif2 = mysql_num_rows($sql2);
while ($Smile = mysql_fetch_array($sql2))
{
array_push ($valeur1, '"'.$Smile['text'].'"');
array_push ($valeur2 '""';
}

$message1 = str_replace(array($valeur1), array($valeur2), $Ligne['message']);
?>

?? ça donnerais quelque chose comme ça ?
0
aurelien0306 Messages postés 181 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 2 mars 2009
9 avril 2005 à 23:08
non pas array($valeur1),array($valeur2) mais $valeur1,$valeur2 directement car ce sont déja des tableaux

teste normalement ça doit marcher (désolé j'avais posté apres toi sans avoir vu ta réponse)
0
Utilisateur anonyme
9 avril 2005 à 23:10
<?


$sql2 = mysql_query ("SELECT * FROM smiley ORDER BY ID DESC");


$verif2 = mysql_num_rows($sql2);


while ($Smile = mysql_fetch_array($sql2))


{


array_push ($valeur1, '"'.$Smile['text'].'"');


array_push ($valeur2, '""');


}


$message1 = str_replace($valeur1, $valeur2, $Ligne['message']);


?>

J'ai ce message d'erreur :
<!--StartFragment -->
Warning: array_push(): First argument should be an array in c:\program files\easyphp1-7\www\gallery\forum\smiley1.php on line 6

Warning: array_push(): First argument should be an array in c:\program files\easyphp1-7\www\gallery\forum\smiley1.php on line 7

Warning: array_push(): First argument should be an array in c:\program files\easyphp1-7\www\gallery\forum\smiley1.php on line 6

Warning: array_push(): First argument should be an array in c:\program files\easyphp1-7\www\gallery\forum\smiley1.php on line 7

Argl, j'ai du mal ...
0
Utilisateur anonyme
9 avril 2005 à 23:12
C'etait pour garder la meme mise en forme que ça :

$message2 = str_replace(array(" ;)", " :)", " :("), array("", "", ""), $Ligne['message']);
0
Utilisateur anonyme
9 avril 2005 à 23:16
Au final j'ai ça :

<?
$valeur1 = Array();
$valeur2 = Array();
$sql2 = mysql_query ("SELECT * FROM smiley ORDER BY ID DESC");
$verif2 = mysql_num_rows($sql2);
while ($Smile = mysql_fetch_array($sql2))
{
array_push ($valeur1, $Smile['text']);
array_push ($valeur2, '');
}
$message1 = str_replace($valeur1, $valeur2, $Ligne['message']);
?>

ET çA MARCHE !!
En tout cas meci beaucoup de ton aide ! J'ai bien cru que je ne m'en sortirais jamais
0
Rejoignez-nous