PHP|Débutant :: Forums

Advertisement

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

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

#1 30-08-2010 13:32:43

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

boucle sql

Bonjour à tous,

Je bute sur la récupération d'une variable sql sous forme de tableau dans un formulaire.
J'ai une table "vidéo" avec un champ "id_mot" qui contient le champ "nom_mot" ou "alias" de la table "motscle".
Je cherche donc à mettre à jour le champ "id_mot" (vidéo) qui contient plusieurs mots (ex: pau, sport).
Note : il y à peut être plus simple pour récupérer les données sous formes de colonnes par "type, mais je n'ai pas su trouver.

<table border="0" cellspacing="0" cellpadding="5">
  <tr valign="top">
 <td>  <?php
 
 
 $sql = "SELECT * FROM motscle WHERE etat='on' AND type='Rubrique'";
$result = mysql_query($sql) or die ('Erreur : '.mysql_error() );

$total = mysql_num_rows($result);
if($total) { ?>
<table border="0" cellspacing="0" cellpadding="5">
  <tr>
    <td><h2>Rubrique</h2></td>
    </tr>
    <?php
           while($row = mysql_fetch_array($result)) {
          ?>
    <tr>
    <td>
<input name="id_mot" type="checkbox" value="id_mot" />
      <?php echo $row[alias]; ?>
      <?php  }} ?>
</td></tr></table></td>
   <td> <?php $sql = "SELECT * FROM motscle WHERE etat='on' AND type='Partenaire'";
$result = mysql_query($sql) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
if($total) { ?>
<table border="0" cellspacing="0" cellpadding="5">
  <tr>
    <td><h2>Partenaire</h2></td>
    <?php
           while($row = mysql_fetch_array($result)) {
          ?>
       <tr>
   <td> <input name="id_mot" type="checkbox" value="nom_mot[]" />
      <?php echo $row[alias]; ?>
      <?php  }} ?>
</td></tr></table></td>
   <td> <?php $sql = "SELECT * FROM motscle WHERE etat='on' AND type='Thématique'";
$result = mysql_query($sql) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
if($total) { ?>
<table border="0" cellspacing="0" cellpadding="5">
  <tr>
    <td><h2>Thématique</h2></td>
    <?php
           while($row = mysql_fetch_array($result)) {
          ?>
      <tr>
     <td> <input name="id_mot" type="checkbox" value="nom_mot[]" />
      <?php echo $row[alias]; ?>
      <?php  }} ?>
</td></tr></table></td>
   <td>
   <?php $sql = "SELECT * FROM motscle WHERE etat='on' AND type='Ville'";
$result = mysql_query($sql) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
if($total) { ?>
<table border="0" cellspacing="0" cellpadding="5">
  <tr>
    <td><h2>Ville</h2></td>
    <?php
           while($row = mysql_fetch_array($result)) {
          ?>
   <tr valign="top">
 <td> <input name="id_mot" type="checkbox" value="nom_mot[]" />
      <?php echo $row[alias]; ?>
      <?php  }} ?>
</td></tr></table></td>
   <td>
    <?php $sql = "SELECT * FROM motscle WHERE etat='on' AND type='Type'";
$result = mysql_query($sql) or die ('Erreur : '.mysql_error() );

$total = mysql_num_rows($result);
if($total) { ?>
<table border="0" cellspacing="0" cellpadding="5">
  <tr>
    <td><h2>Type</h2></td>
 
  <?php
           while($row = mysql_fetch_array($result)) {
          ?>
    <tr valign="top">
   <td> <input name="id_mot" type="checkbox" value="nom_mot[]" />
      <?php echo $row[alias]; ?>
      <?php  }} ?>
</td></tr></table></td></tr></table>

Le formulaire est traité comme suit :

// vérifions que la variable a été transmise
$id_mot = (isset($_POST['id_mot']))?$_POST['id_mot']:null;

//$id_mot = array();
//while($tab[] = mysql_fetch_array($req)){}
//echo implode(",",$id_mot);

//echo "Voici les motd cle que vous avez choisi :<br>";
// bouclons sur le tableau qui a été transmis et affichons les valeurs sélectionnées
if (!empty($id_mot)) {
       
        echo array_values($id_mot) ;
echo  $id_mot ;
       
        foreach($id_mot as $cle => $val){
        echo $cle;
        echo count ($id_mot);
$n = count($id_mot)-1;
if($cle == $n){
                       
 $listenom .= $val;
}else {
$listenom .= $val.",";
}
}
}

pour un update sous fomre de id_mot='$listenom'

ce qui me génère un beau

Warning: array_values() [function.array-values]: The argument should be an array in /homez/update-video.php on line 64
id_mot
Warning: Invalid argument supplied for foreach() in /homez/update-video.php on line 67

Donc encore une fois, j'en appel à votre aide et à votre patience pour m'aider à résoudre ce soucis.

Hors ligne

#2 30-08-2010 15:04:29

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

Re : boucle sql

résolut grâce au formulaire

<table border="0" cellspacing="0" cellpadding="5">
  <tr valign="top">
 
 
 
 
 
 <td>  <?php $sql = "SELECT * FROM motscle WHERE etat='on' AND type='Rubrique'";
$result = mysql_query($sql) or die ('Erreur : '.mysql_error() );
//$total = mysql_num_rows($result);
//if($total) { ?>
<table border="0" cellspacing="0" cellpadding="5">
  <tr>
    <td><h2>Rubriques</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>"; } ?>  
    <!--<td> <input name="nom_mot" type="checkbox" value="<?php echo $val[nom_mot]; ?>" />
      <?php echo $val[alias]; ?>
      <?php
    //} ?>
</td>--></tr></table></td>
   <td>  <?php $sql = "SELECT * FROM motscle WHERE etat='on' AND type='Partenaire'";
$result = mysql_query($sql) or die ('Erreur : '.mysql_error() );
//$total = mysql_num_rows($result);
//if($total) { ?>
<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>"; } ?>  
    <!--<td> <input name="nom_mot" type="checkbox" value="<?php echo $val[nom_mot]; ?>" />
      <?php echo $val[alias]; ?>
      <?php
    //} ?>
</td>--></tr></table></td>
   <strong><td>  <?php $sql = "SELECT * FROM motscle WHERE etat='on' AND type='thematique'";
$result = mysql_query($sql) or die ('Erreur : '.mysql_error() );
//$total = mysql_num_rows($result);
//if($total) { ?>
<table border="0" cellspacing="0" cellpadding="5">
  <tr>
    <td><h2><strong>Thématiques</strong></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>"; } ?>  
    <!--<td> <input name="nom_mot" type="checkbox" value="<?php echo $val[nom_mot]; ?>" />
      <?php echo $val[alias]; ?>
      <?php
    //} ?>
</td>--></tr></table></td></strong>
   <td>  <?php $sql = "SELECT * FROM motscle WHERE etat='on' AND type='ville'";
$result = mysql_query($sql) or die ('Erreur : '.mysql_error() );
//$total = mysql_num_rows($result);
//if($total) { ?>
<table border="0" cellspacing="0" cellpadding="5">
  <tr>
    <td><h2>Villes</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>"; } ?>  
    <!--<td> <input name="nom_mot" type="checkbox" value="<?php echo $val[nom_mot]; ?>" />
      <?php echo $val[alias]; ?>
      <?php
    //} ?>
</td>--></tr></table></td>
   <td>  <?php $sql = "SELECT * FROM motscle, video WHERE etat='on' AND type='type'";
$result = mysql_query($sql) or die ('Erreur : '.mysql_error() );
//$total = mysql_num_rows($result);
//if($total) { ?>
<table border="0" cellspacing="0" cellpadding="5">
  <tr>
    <td><h2>Types</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>"; } ?>  
    <!--<td> <input name="nom_mot" type="checkbox" value="<?php echo $val[nom_mot]; ?>" />
      <?php echo $val[alias]; ?>
      <?php
    //} ?>
</td>--></tr></table></td></tr></table>

traité comme ça

// vérifions que la variable a été transmise
$id_mot = (isset($_POST['nom_mot']))?$_POST['nom_mot']:null;

//echo "Voici les motd cle que vous avez choisi :<br>";
// bouclons sur le tableau qui a été transmis et affichons les valeurs sélectionnées
//if (!empty($nom_mot)) {
 
//  echo array_values($nom_mot) ;
  //echo  $nom_mot ;
 
  foreach($nom_mot as $cle => $val){
  //echo $cle;
  //echo count ($nom_mot);
$n = count($nom_mot)-1;
if($cle == $n){
     
 $listenom .= $val;
}else {
$listenom .= $val.",";
}
}

Merci

Hors ligne

Pied de page des forums