Pb php-mysql

Fermé
moez - 21 oct. 2002 à 14:47
tafiscobar Messages postés 1277 Date d'inscription jeudi 7 décembre 2000 Statut Contributeur Dernière intervention 26 février 2009 - 21 oct. 2002 à 19:07
Bonjour
j'ai ecirt un script qui fait la recherche ds une table('search') puis il cree une autre tale search1 et il stocke les resultat dans cette derniere


voici mon script:

<?
$db=mysql_connect('localhost','root','') or die("erreur de connection");
mysql_select_db('cifodedb',$db) or die("erreur de connexion");
$creation="create table search1(titre varchar(255) not null,mot_cle varchar(255) not null,url varchar(255) not null,description varchar(255) not null);";
$create=mysql_query($creation);


$recherche=strtolower($recherche);
$recherche=ereg_replace("é","e",$recherche);
$recherche=ereg_replace("è","e",$recherche);
$recherche=ereg_replace("à","a",$recherche);
$recherche=ereg_replace("ç","c",$recherche);
$mots=str_replace("+"," ",trim($recherche));
//$mots=str_replace("/"," ",$mots);//dernier ajout si l'utilisateur entre mot1/mot2 exemple C/C++
$mots=str_replace(","," ",$mots);
//$mots=str_replace(":"," ",$mots);
$mots=str_replace(","," ",$mots);
$mots=str_replace(";"," ",$mots);

$tab=explode(" ",$mots);
$nb=count($tab);


$sql="select * from search where mot_cle like '%$tab[0]%' ";
//on boucle pour integrer tous les mots ds la requete
for($i=1;$i<$nb;$i++)
{
$sql .="and mot_cle like '%$tab[$i]%' ";
}

$resultat = mysql_query($sql);
$insertion="insert into search1 values('$row[titre]','$row[mot_cle]','$row[url]','$row[description]');";
while($row=mysql_fetch_array($resultat)){
mysql_query($insertion);
}
echo $insertion;
?>
ça retourne :
insert into search1 values('','','','');
c bizarre !!
merci

2 réponses

xadrez Messages postés 149 Date d'inscription samedi 3 novembre 2001 Statut Membre Dernière intervention 23 mai 2003 16
21 oct. 2002 à 18:03
Salut,
C'est normal,

Regarde ce que tu as fait avec ta variable $row !!!

Tu initialises $insertion avec $row avant d'avoir initialisé $row...

Donc $insertion contient : "insert into search1 values('','','','')"

Sur l'échiquier de la vie, j'ai choisi d'être le Fou,
parce que je ne suis pas Cavalier. Xadrez
0
j\'ai essayé ça mais ça n\'a inseré que 2 réponses ds search1 parcontre ils devront etre 6 pq à ton avis
while($row=mysql_fetch_array($resultat)){

$insertion=\"insert into search1 values(\'$row[titre]\',\'$row[mot_cle]\',\'$row[url]\',\'$row[description]\');\";
mysql_query($insertion);
}
0
tafiscobar Messages postés 1277 Date d'inscription jeudi 7 décembre 2000 Statut Contributeur Dernière intervention 26 février 2009 177
21 oct. 2002 à 19:07
moi, j'ai lhabitude de faire ceci, plus simple et plus pratique que le mysql-fetch-array :
while($row=mysql-fetch-row($resultats){
mysql_query("insert into search1 values(`$row[0]',`$row[1]',`$row[2]',`$row[3]')");w
}
//la, j'etais sur que cela prenait un a un les lignes et qu'il est insere ds mon autre table.Tu p aussi pourqoi pas , utiliser a la place de mysql_query, mysql_db_query.
tafiscobar
0