PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 31-08-2010 14:09:42

allhambra
Membre
Lieu : Pau (64)
Inscription : 10-09-2009
Messages : 75
Site Web

probleme requete sql

bonjour à tous smile !

J'ai une table "vidéo" contenant un champ "id_mot" (ex: pau,culture,Musique) et une table mots clé contenant les champs "nom_mot", "état", "alias" et "type" où "état" est une case à cocher (valeur on ou vide).

Dans un formulaire de modification, je récupère la liste des mots clé par type et je souhaite pouvoir afficher les mots clé contenu dans "id_mot" avec une case à cocher "checked".
J'ai donc le code suivant :

<?php

$sql = "SELECT * from video WHERE id='$id'";
$result = mysql_query($sql) or die ('Erreur : '.mysql_error() );
$row=MYSQL_FETCH_ARRAY($result);

$contenu= $row["contenu"];
mysql_free_result($result);
unset($result);
unset($sql);

?>

....

<tr>
    <td>Mots clé</td>
    <td>
<p style="color:#F00">déjà selectionnés : <?php echo htmlentities($row[id_mot]); ?></p>
<?php $tab=explode(",",$row[id_mot]);
    $nb=count($tab);    
<td>  <?php $requete = "SELECT * FROM motscle WHERE etat='on' AND type='Rubrique' ";
    $val=$row['nom_mot'];
    for($i=1 ; $i<$nb; $i++)
        {
        $sql.="$operateur alias like \"%$tab[$i]%\" ";       // on boucle pour integrer tous les mots dans la requête
        }
   
   
     
      foreach($tab as $val){
$result = mysql_query($requete) or die ('Erreur : '.mysql_error() );?>
<table border="0" cellspacing="0" cellpadding="5">
  <tr>
    <td><h2>Rubriques</h2></td>
    </tr>
    <?php
     while($val = mysql_fetch_array($result)) {
    ?>
    <tr>
  <?php
  if ($val['nom_mot'] = $tab[0]){
   
  echo "<td align=\"left\"><input type='checkbox' selected='selected' nom_mot='nom_mot[]' name='nom_mot[]' value='".$val['nom_mot']."'>".$val['alias']." </td>";
  }else {  echo "<td align=\"left\"><input type='checkbox' selected='' nom_mot='nom_mot[]' name='nom_mot[]' value='".$val['nom_mot']."'>".$val['alias']." </td>"; }}}?>  
    </tr></table></td></table></tr>

je ne met que la colonne type=rubrique pour ne pas surcharger le code.
Au lieu de me retourner la liste des mots clé de type "rubrique", mon tableau me renvoie

Rubriques
Économie
Sport
Vie Locale
Actualités
Loisirs et Sorties
Rubriques
Économie
Sport
Vie Locale
Actualités
Loisirs et Sorties
Rubriques
Économie
Sport
Vie Locale
Actualités
Loisirs et Sorties
Rubriques
Économie
Sport
Vie Locale
Actualités
Loisirs et Sorties

sans message d'erreur et avec mes cases à cocher non cochées

pour info les autre colonnes sont de types :

<td>  <?php $sql = "SELECT * FROM motscle WHERE etat='on' AND type='partenaire'";
$result = mysql_query($sql) or die ('Erreur : '.mysql_error() ); ?>
<table border="0" cellspacing="0" cellpadding="5">
  <tr>
    <td><h2>Partenaires</h2></td>
    </tr>
    <?php
     while($val = mysql_fetch_array($result)) {
    ?>
    <tr>
  <?php echo "<td align=\"left\"><input type='checkbox' nom_mot='nom_mot[]' name='nom_mot[]' value='".$val['nom_mot']."'>".$val['alias']." </td>"; } ?>  
    </tr></table></td>

j'ai donc deux questions :
- 1 - est il possible d'avoir le même résultat sans avoir une requête par type, car j'ai 5 types ??
- 2 - comment puis je récupérer " l'état" de mes cases à cocher dans cette boucle ???

Toute aide est bienvenue smile

Dernière modification par allhambra (31-08-2010 14:19:11)

Hors ligne

#2 12-09-2010 23:34:17

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : probleme requete sql

Bonsoir,

Première question.
Tu boucles avec

  for($i=1 ; $i<$nb; $i++)
        {
        $sql.="$operateur alias like \"%$tab[$i]%\" ";       // on boucle pour integrer tous les mots dans la requête
        }

Mais tu ne te sers pas de $sql plus loin dans ton code (si mais tu le redefinis à travers une nouvelle requête, donc ta boucle ne sers plus à rien). Pour moi donc, normal que tes cases à cocher ne le soient pas. de plus "operateur alias" est ambigü au sens mysql du terme.


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

Pied de page des forums