PHP|Débutant :: Forums

Advertisement

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

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

#26 Re : Forum Général PHP » syntaxe variable destinataire dans mail() » 15-12-2010 09:13:21

bonjour, oui la fin d'accolade est à la fin de ma page après le tableau récapitulatif.

#27 Re : Forum Général PHP » syntaxe variable destinataire dans mail() » 15-12-2010 09:13:21

coucou les codeurs,
salut xTG, on se retrouve wink
merci pour vos réponses
J'avais déjà testé sans succès, je me demande si je n'ai pas une erreur quelque part sad

#28 Re : Forum Général PHP » syntaxe variable destinataire dans mail() » 15-12-2010 09:13:21

Bonjour Maljuna, merci de ta réponse ultra rapide wink
Avec cette syntaxe, ça ne marche pas non plus pourtant

 echo $mail_producteur;

renvoie bien la variable !!!!

#29 Forum Général PHP » syntaxe variable destinataire dans mail() » 15-12-2010 09:13:21

allhambra
Réponses : 11

bonjour à tous,
j'ai un petit soucis avec une variable "to".

lorsque je la définie en dur (ex : $to="tata@tata.fr";), l'émail est bien envoyé, mais lorsque je tente de récupérer ma variable, le mail ne part pas !
je dois avoir une erreur de syntaxe dans la variable.

<?php $req ="SELECT *
    FROM producteurs        
    WHERE nom_producteur ='$producteur' AND prod='on'"
;
    $result2 = mysql_query($req) or die(mysql_error());
while($row = mysql_fetch_array($result2))
{

$mail_producteur = $row['mail_producteur'];
$nom_producteur = $row['nom_producteur'];
$contact = $row['contact'];

//destinataire :
$to =$mail_producteur;
// sujet :
$subject = "ici-TELE parle de vous";
// message :
$message = "
<html>
<head>
<title>ici-TELE parle de vous</title>
</head>
<body>
<p>Bonjour "
.$contact."</p>
<table>
<tr>

<td>La vidéo ".$title." vous concernant est en ligne sur notre site, vous pouvez la <a href=\"/television-locale-pau/video/telechargement.php?nomFichier=".$nom.".mp4&dossier=./\">Télécharger</a>. <br/>
Cette vidéo est également disponible sur <a href=\""
.$youtubelink."\">youtube</a> et <a href=\"".$dailylink."\"> dailymotion</a>.
</td>
</tr>
</table>
</body>
</html>"
;
// Pour envoyer un mail au format html, vous pouvez configurer le type content-type :
$headers = "MIME-Version: 1.0\r\n";
$headers .= "content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: Rédaction ici-TELE <redaction@ici-tele.com.com>\r\n";
?>
  <form action="<? echo $PHP_SELF ?>" method="post"  name="video">
    <table  border="0" cellspacing="5" cellpadding="0">
      <tr>
        <td colspan="2"><div align="center">
            <br />
            <br />
            <?php // on affiche le résultat pour le visiteur
    echo '<b>Votre vidéo a été ajoutée.</b><br />';
   
       if (mail($to, $subject, $message, $headers))
        //if (mail($to, $subject, $message, $headers))
     {
          echo '<div align=\"center\">Le message a été envoyé au producteur</div>';
    }
     else
     {
          echo '<div align=\"center\">Le message n\'a pu être envoyé</div>';
     }

     
     ?>

comment puis je syntaxer $to =$mail_producteur; ??

$to =".$mail_producteur.";

?

$to ="".$mail_producteur."";

?

merci de votre aide

#30 Re : MySQL, PostgreSQL, etc... » formulaire update photos » 06-12-2010 20:48:44

Bonsoir xTG, merci de ta réponse.
J'ai modifié comme indiqué, mais c'est toujours pareil !
Si je ne rentre qu'une photo à l'ajout du bien, lorsque je tente de rajouter les suivante via mon update, il efface la première image de la base de données.

Dois-je faire un formulaire par photos ???

#31 MySQL, PostgreSQL, etc... » formulaire update photos » 06-12-2010 20:48:44

allhambra
Réponses : 2

Bonjour les codeurs !

J'ai un souci sur les champs images d'un formulaire d'update.
Lors de la mise à jour du bien, si je ne rentre rien dans mes champs, le script efface les images enregistrées en BDD et je n'ai pas de message d'erreur.
Le formulaire :

<FORM method="POST" enctype="multipart/form-data" action="update-bien.php?id=<?php echo $id; ?>">
 
    <input type="hidden" name="posted" value="1">
    <input name="id" type="hidden" value="<?php echo $row[id] ; ?>">
<table width="80%" border="0" align="center" cellpadding="5" cellspacing="0">
 
   <tr>
      <td colspan="2" class="style10">Les visuels </td>
      </tr>
    <tr>
      <td colspan="2">
    <?php if($photo_1 || ($row[photo_1] && !$posted)) { ?><label>Photo 1 <img src="../photos/<?php echo ($row[photo_1]); ?>" width="100" /></label>
    <label><input type="file" name="photo1"></label> <p> </p>
    <p> </p>
    <p><br />
     
        <?php } else {  ?>
      </p>
    <label> Photo 1<input type="file" name="photo1"></label>  <p> </p>
    <p><br />
     
      <?php } if($photo_2 || ($row[photo_2] && !$posted)) { ?><label>Photo 2 <img src="../photos/<?php echo ($row[photo_2]); ?>" width="100" /></label>  <label>
      <input type="file" name="photo2"></label>
    <p>      
    <p>
      <p><br />
     
        <?php } else {  ?>  
        <label> Photo 2<input type="file" name="photo2">
        </label>  
      <p> </p>
    <p><br />
     
        <?php }  if($photo_3 || ($row[photo_3] && !$posted)) { ?><label>Photo 3 <img src="../photos/<?php echo ($row[photo_3]); ?>" width="100" /></label>
        <label>
        <input type="file" name="photo3"></label>        
    <p>      
    <p><br />
     
        <?php } else {  ?>
     
      <label> Photo 3<input type="file" name="photo3">
        </label>  
      <p>        
      <p><br />
          <?php } ?>
                            </td>
      </tr>

   
    <tr>
      <td height="50" colspan="2"><div align="center">
        <p>
         
        </p>
        <p>
          <input type="submit" name="Submit" value="modifier ce bien" class="wymupdate" />
        </p>
      </div></td>
    </tr>
  </table>
  </form>

le traitement :

<?php
$select2="SELECT * FROM biens WHERE id='$id' ";

  $result2 = mysql_query($select2) or die ('Erreur : '.mysql_error() );

$total2 = mysql_num_rows($result2);
// si on a récupéré un résultat on l'affiche.

if($total2) {
 while($row = mysql_fetch_array($result2)) {
if($posted)
  {
  $id=$_POST['id'];
$partenaire= $_POST['partenaire'];
   $selection= $_POST['selection'];
   $reference= $_POST['reference'];
   $categorie= $_POST['categorie'];
   $type= $_POST['type'];
   $etage= $_POST['etage'];
   $ascenseur= $_POST['ascenseur'];
   $surface_hab= $_POST['surface_hab'];
   $nbre_chambres= $_POST['nbre_chambres'];
   $surface_sejour= $_POST['surface_sejour'];
   $type_cuisine= $_POST['type_cuisine'];
   $type_chauffage= $_POST['type_chauffage'];
   $charges= $_POST['charges'];
   $prestation_1 = $_POST['prestation_1'];
   $prestation_2= $_POST['prestation_2'];
   $prestation_3= $_POST['prestation_3'];
   $cave= $_POST['cave'];
   $nbre_stat= $_POST['nbre_stat'];
   $type_stat= $_POST['type_stat'];
   $titre_annonce= $_POST['titre_annonce'];
   $annonce= $_POST['annonce'];
   $ville= $_POST['ville'];
   $prix= $_POST['prix'];
   $frais= $_POST['frais'];
 
   $vv= $_POST['vv'];

 
  $chemin = "../photos/" ;

   
    if(!empty($_FILES["photo1"]["name"]))
{
  //nom du fichier choisi:
  $nomFichier    = $_FILES["photo1"]["name"] ;
  //nom temporaire sur le serveur:
  $nomTemporaire = $_FILES["photo1"]["tmp_name"] ;
  //type du fichier choisi:
  $typeFichier   = $_FILES["photo1"]["type"] ;
  //poids en octets du fichier choisit:
  $poidsFichier  = $_FILES["photo1"]["size"] ;
  //code de l'erreur si jamais il y en a une:
  $codeErreur    = $_FILES["photo1"]["error"] ;
 

 
  if(copy($nomTemporaire, $chemin.$nomFichier))
  $msg="l'upload 1 a réussi";
   
  else
  $msg="l'upload de la photo 1 a échoué";
}
  if(!empty($_FILES["photo2"]["name"]))
{
  //nom du fichier choisi:
  $nomFichier2    = $_FILES["photo2"]["name"] ;
  //nom temporaire sur le serveur:
  $nomTemporaire = $_FILES["photo2"]["tmp_name"] ;
  //type du fichier choisi:
  $typeFichier   = $_FILES["photo2"]["type"] ;
  //poids en octets du fichier choisit:
  $poidsFichier  = $_FILES["photo2"]["size"] ;
  //code de l'erreur si jamais il y en a une:
  $codeErreur    = $_FILES["photo2"]["error"] ;
 

 
  if(copy($nomTemporaire, $chemin.$nomFichier2))
  $msg="l'upload 2 a réussi";
   
  else
  $msg="l'upload de la photo 2 a échoué";
}

if(!empty($_FILES["photo3"]["name"]))
{
  //nom du fichier choisi:
  $nomFichier3    = $_FILES["photo3"]["name"] ;
  //nom temporaire sur le serveur:
  $nomTemporaire = $_FILES["photo3"]["tmp_name"] ;
  //type du fichier choisi:
  $typeFichier   = $_FILES["photo3"]["type"] ;
  //poids en octets du fichier choisit:
  $poidsFichier  = $_FILES["photo3"]["size"] ;
  //code de l'erreur si jamais il y en a une:
  $codeErreur    = $_FILES["photo3"]["error"] ;
 

 
  if(copy($nomTemporaire, $chemin.$nomFichier3))
  $msg="l'upload 3 a réussi";
   
  else
  $msg="l'upload de la photo 3 a échoué";
   
}
if($photo_1 || ($row[photo_1] && !$posted)) { $photo_1="($row[photo_1])";}else{ $photo_1=$_POST['nomFichier']; }
if($photo_2 || ($row[photo_2] && !$posted)) { $photo_2="($row[photo_2])";} else { $photo_2=$_POST['nomFichier2']; }
if($photo_3 || ($row[photo_3] && !$posted)) { $photo_3="($row[photo_3])";} else { $photo_3=$_POST['nomFichier3']; }

 if(empty($categorie) || empty($titre_annonce) || empty($annonce)) $msg="Veuillez compléter les champs marqués d'un *";
 
   else
     {
   
      $sql="UPDATE biens
              SET partenaire='$partenaire',
        selection='$selection',
        reference='$reference',
                          categorie='$categorie',
                          type='$type',
                          etage='$etage',
         ascenseur ='$ascenseur',
         surface_hab='$surface_hab',
         nbre_chambres='$nbre_chambres',
         surface_sejour='$surface_sejour',
         type_cuisine='$type_cuisine',
         type_chauffage='$type_chauffage',
         charges='$charges',
         prestation_1='$prestation_1',
         prestation_2='$prestation_2',
         prestation_3='$prestation_3',
         cave='$cave',
         nbre_stat='$nbre_stat',
         type_stat='$type_stat',
         titre_annonce='$titre_annonce',
         annonce='$annonce',
         ville='$ville',
         prix='$prix',
         frais='$frais',
         photo_1='$nomFichier',
         photo_2='$nomFichier2',
         photo_3='$nomFichier3',
         vv='$vv'
              WHERE id='$id'"
;
 
     
       mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

 // on affiche le résultat pour le visiteur
    echo '<b>Votre bien a été modifié.</b>';
 

    mysql_close();  // on ferme la connexion
    } }}}}}

En gros je cherche à lui dire que s'il n'y à pas de post (photo1,2 ou3), on garde la valeur initiale.

un coup de main serait bienvenu

#32 Re : MySQL, PostgreSQL, etc... » conversion format de date sql » 15-09-2010 20:28:13

bonjour Jc,
merci pour ta réponse! Si je comprends bien, je dois le faire dans ma requête ??
qu'en est il de :

$query = "SELECT id, title, nom, contenu, description, publication AS gmDate, fin, etat, id_mot,organisateur, lieux, auteur, update, priorite FROM video WHERE `id_mot` LIKE '%$mot%'  LIMIT 0, 30";

Est ce correct ? car ça me génère une erreur   

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in gene-pod.php on line 13
Pas d'enregistrements trouvés

Je sais que le format de date que je dois obtenir est "R" ( D, d MYH: i: s O) mais je ne vois pas comment lier cette info a mon champs sql "publication"

#33 MySQL, PostgreSQL, etc... » conversion format de date sql » 15-09-2010 20:28:13

allhambra
Réponses : 3

Bonjour à tous, je cherche désespérément à convertir un champ sql "publication" qui est au format datetime, au format gmDate pour un flux podcast.


J'arrive au bon format avec la date du jour :

$current_date = gmDate("D-M-Y \h:i:s\ O");

, mais je ne sais pas comment convertir mon champ "publication" à ce format.

j'ai vu 2 fonctions qui me semblent appropriées, mais je ne trouve pas d'exemple de syntaxe pour la récupération de champs sql et je voudrais m'assurer qu'elles correspondent bien à ce que je souhaite faire.
- DATE_FORMAT(date,format)
- string date  ( string $format  [, int $timestamp  ] )

Tous conseils ou indices sont bienvenus big_smile

#34 MySQL, PostgreSQL, etc... » probleme requete sql » 12-09-2010 23:34:17

allhambra
Réponses : 1

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

#35 Re : Forum Général PHP » boucle sql » 30-08-2010 15:04:29

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

#36 Forum Général PHP » boucle sql » 30-08-2010 15:04:29

allhambra
Réponses : 1

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.

#37 Re : Forum Général PHP » soucis foraech » 11-08-2010 12:11:33

Merci beaucoup JC, maintenant je comprends mieux comment faire une boucle efficace wink

#38 Re : Forum Général PHP » soucis foraech » 11-08-2010 12:11:33

coucou, JC, merci de ta réponse,

grâce à toi, les mots clé sont récupérés en entier, par contre pour la boucle je n'ai pas du tout comprendre, lol.

  foreach($tab as $tab[i]){
    echo '<a href="webtv-thematique.php?id_mot=$tab[x]">$tab[x]</a>';
   }

m'affiche $tab[x]$tab[x]$tab[x]$tab[x]
bon, il y en à quatre, ce qui correspond bien au nombre de mots clé, mais je ne récupère pas leurs valeurs sad

#39 Forum Général PHP » soucis foraech » 11-08-2010 12:11:33

allhambra
Réponses : 4

bonjour à tous smile.

J'ai un petit soucis avec cette boucle

 <td>
        <?php
    $id_mot = str_replace(",", " ", $id_mot);                   // on remplace les , par des espaces
    $tab=explode(" " , $id_mot);                                // on place les differents mots dans un tableau
    $nb=count($tab);                                            // on compte le nbr d'élément du tableau.
    $requete = 'SELECT COUNT(nom_mot, alias) AS total FROM motscle where nom_mot like \'%'.$tab[0].'%\' ';
   
    for($i=1 ; $i<$nb; $i++)
        {
        $sql.="$operateur nom_mot like \"%$tab[$i]%\" ";       // on boucle pour integrer tous les mots dans la requête
        }
   
    foreach($tab as $tab[i]){
      echo $tab[i]."<br>";
   }
   
    ?>
     
       
        <p><a href="webtv-thematique.php?id_mot=<?php echo $id_mot ; ?>"><?php echo $id_mot ; ?></a></p>
       
        <?php } ?></td>

1 - Je récupère bien mes mots clé, mais les mots clé composé de plusieurs mot ( ex :  développement durable) mes occurrences sont séparées.
2 - je ne sais pas comment syntaxer mon lien. J'ai tenté

<a href="webtv-thematique.php?id_mot=<?php echo $tab[i] ; ?>"><?php echo $id_mot ; ?></a>

mais il ne m'affiche qu'un seul mot clé(le dernier)

<p><a href="webtv-thematique.php?id_mot=<?php echo $tab[0] ; ?>"><?php echo $tab[0] ; ?></a></p>

me retourne uniquement le premier

la question est, comment recuperer la valeur de chaque tab pour rédiger mon lien ??

J'avoue qu'un petit coup de pouce serait bienvenu big_smile  merci

#40 Re : Forum Général PHP » interrogation sur 2 tables » 09-08-2010 19:31:24

C'est bon, j'ai grugé en remplaçant "l'id_mot" de la table videos par le nom du mot

#41 Forum Général PHP » interrogation sur 2 tables » 09-08-2010 19:31:24

allhambra
Réponses : 1

Bonjour à tous,
grâce à votre aide, mon projet est presque achevé.
je bute sur une page qui génère une liste xml.

j'ai deux tables" videos" et "motscle"
j'interroge la table video qui contient un champ id_mot.
le code fonctionne bien, et génère les bonnes listes mais elles sont nommées par le n° d'id.

Je souhaiterai le fichier généré porte le nom du champ "alias" de la table motscle.
en gros :

$mot=$row[alias];

Lorsque je tente

  $query = "SELECT * FROM video,motscle WHERE `id_mot` LIKE '%$mot%'  LIMIT 0, 30";
$result=mysql_query($query);
$num = mysql_num_rows($result);

if (!$result){print "Pas d'enregistrements trouvés";exit;}
while($row=mysql_fetch_array($result)){

suivi de

$query="SELECT id_mot,alias FROM motscle WHERE id_mot='$mot'";
$result2=MYSQL_QUERY($query) or die("Erreur de lecture dans la table organisateurs");
    while($row=MYSQL_FETCH_ROW($result2))
  {
  $alias=$row["alias"];

j'ai   

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in gene-liste.php on line 14
Pas d'enregistrements trouvés
$mot = isset($_POST['mot']) ? $_POST['mot'] : '';
if (($mot == "")||($mot == "%")) {
// Si aucun mot clé n'a été saisi,le script demande à l'utilisateur de bien vouloir préciser un mot clé
$msg="Veuillez entrer un mot clé s'il vous plaît!";

}else {            
 
  $query = "SELECT * FROM video WHERE `id_mot` LIKE '%$mot%'  LIMIT 0, 30";
$result=mysql_query($query);
$num = mysql_num_rows($result);

if (!$result){print "Pas d'enregistrements trouvés";exit;}
while($row=mysql_fetch_array($result)){
  $source_file=$row["nom"];

  $nombre=mysql_num_fields($result);

 /* indiquer $dest_file qui correspond au répertoire de destination */
  $dest_file="/video/";
  $dest_page="/video.php?";
  $ext1="flv";
  $ext2="jpg";
/* enlève un "\"  */
  //$source_file=("$nom");
 
  $link = ("$URL_site$dest_page$source_file");
  $mediacontent = ("$URL_site$dest_file$source_file.$ext1");
  $mediathumbnail = ("$URL_site$dest_file$source_file.$ext2");
$query="SELECT id_mot,alias FROM motscle WHERE id_mot='$mot'";
$result2=MYSQL_QUERY($query) or die("Erreur de lecture dans la table organisateurs");
    while($row=MYSQL_FETCH_ROW($result2))
  {
  $alias=$row["alias"];
// s'il y a des résultats  
if ($num != 0) {
      $file= fopen("../xml/$alias.xml", "w");
    $_xml .="<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n";
  $_xml .="<rss version=\"2.0\" xmlns:media=\"http://search.yahoo.com/mrss/\">\r\n";
  $_xml .="<channel>\r\n";
  $_xml .="<title>Example media RSS playlist for the JW Player</title>\r\n";
  $_xml .="<link>http://www.jeroenwijering.com</link>\r\n";   while ($row = mysql_fetch_array($result)) {
  //if ($row["item"]) {
  $_xml .="\t<item>\r\n";
  $_xml .="\t<id>" . $row["id"] . "</id>\r\n";
  $_xml .="\t\t<title>" . $row["title"] . "</title>\r\n";
  $_xml .="\t<media:content url=\"" . $mediacontent . "\" />\r\n";
  $_xml .="\t<media:thumbnail url=\"" . $mediathumbnail . "\" />\r\n";
  $_xml .="\t\t<description>" . $row["description"] . "</description>\r\n";
  $_xml .="\t\t<link>".$link."</link>\r\n";
  $_xml .="\t</item>\r\n";
  $_xml .="</channel>\r\n";
  $_xml .="</rss>\r\n";


        }

fwrite($file, $_xml);

?>
<table width="98%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="center"><?php echo "<p></p><h1><br/><br/><u>Le fichier XML $alias a été créé <a href=\"../xml/$alias.xml\">ICI :).</u></a></h1><br/><br/>"; ?></td>
  </tr>
  <tr>
    <td align="center"><?php echo $msg ?></td>
  </tr>
</table>
<?php    
}
else {
   echo "erreur";
}  }}}
?>

#42 Re : Forum Général PHP » recuperation de variable d'une page à l'autre » 02-08-2010 13:37:13

bonjour a tous, j'espère que vous avez passé un bon week end.

un grand merci a vous tous, ça fonctionne parfaitement. smile
Allez, plus qu'une page à coder et le site sera terminé ( je pourrais enfin profiter de mes vacances) big_smile

#43 Re : Forum Général PHP » recuperation de variable d'une page à l'autre » 02-08-2010 13:37:13

l'echo des erreur me renvoie

Erreur Sql : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #3' at line 1 Requete : Resource id #3

et

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in webtv-thematique.php on line 116

il sort d'où ce #3 ???

#44 Re : Forum Général PHP » recuperation de variable d'une page à l'autre » 02-08-2010 13:37:13

salut xTG,

$retour_total=mysql_query('SELECT COUNT(id) AS total FROM video where id_mot like "%$tab[0]%" '); //Nous récupérons le contenu de la requête dans $retour_total
$donnees_total=mysql_query($retour_total); //On range retour sous la forme d'un tableau.
$total=$donnees_total['total']; //On récupère le total pour le placer dans la variable $total.

//Nous allons maintenant compter le nombre de pages.
$nombreDePages=ceil($total/$messagesParPage);

boubou bou, toujours pas de numerotation

#45 Re : Forum Général PHP » recuperation de variable d'une page à l'autre » 02-08-2010 13:37:13

bon,


en modifiant le code comme indiqué

$retour_total='SELECT COUNT(*) AS total FROM video where id_mot like \"%$tab[0]%\" ';
//Nous récupérons le contenu de la requête dans $retour_total
$donnees_total=mysql_query($retour_total); //On range retour sous la forme d'un tableau.
$total=$donnees_total['total']; //On récupère le total pour le placer dans la variable $total.
//Nous allons maintenant compter le nombre de pages.
$nombreDePages=ceil($total/$messagesParPage);

je n'ai effectivement plus de message d'erreur, mais je n'ai plus la numérotation non plus sad

j'avais oublié comme c'est fastidieux de coder, lol

#47 Re : Forum Général PHP » recuperation de variable d'une page à l'autre » 02-08-2010 13:37:13

Alléluia !!!
Ca fonctionne enfin à force de triturer le code  big_smile

J'ai juste un dernier petit détail à régler concernant ma pagination car si je n'ai que 3 resultats (sport par exemple) ma pagination reste

Page : [ 1 ] 2  3  4  5  6  7  8  9  10  11  12  13

puisque je ne fais pas le trie sur

$retour_total=mysql_query('SELECT COUNT(*) AS total FROM video '); //Nous récupérons le contenu de la requête dans $retour_total
$donnees_total=mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
$total=$donnees_total['total']; //On récupère le total pour le placer dans la variable $total.

//Nous allons maintenant compter le nombre de pages.
$nombreDePages=ceil($total/$messagesParPage);

mais si j'applique le tri sur la pagination et ma requete, il me retourne

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in webtv-thematique.php  on line 13
$donnees_total=mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.

#49 Re : Forum Général PHP » recuperation de variable d'une page à l'autre » 02-08-2010 13:37:13

Coucou,
merci pour vos réponses, je me sens moins seule smile
je suis désespérée et j'ai cogité toute la nuit.

- Je me suis dit que comme il y à plusiers "id_mot dans le champs, il fallait que je trouve un truc pour les séparer.
dans ma bdd, le champ contient par exemple : 1,21, je fais donc appel à $id_mot = str_replace(",", " ", $id_mot);  (est ce une bonne idée ??)

- j'ai affiché la requête pour voir ce qui ce passait il prend bien en compte l'id_mot et me retourne comme echo

La requete SQL execute est : select * from video where id_mot like "%1%" LIMIT 0, 3
$messagesParPage=3; //Nous allons afficher 3 messages par page.

//Une connexion SQL doit être ouverte avant cette ligne...
$retour_total=mysql_query('SELECT COUNT(*) AS total FROM video'); //Nous récupérons le contenu de la requête dans $retour_total
$donnees_total=mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
$total=$donnees_total['total']; //On récupère le total pour le placer dans la variable $total.

//Nous allons maintenant compter le nombre de pages.
$nombreDePages=ceil($total/$messagesParPage);

if(isset($_GET['page'])) // Si la variable $_GET['page'] existe...
{
     $pageActuelle=intval($_GET['page']);
     
     if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
     {
          $pageActuelle=$nombreDePages;
     }
}
else // Sinon
{
     $pageActuelle=1; // La page actuelle est la n°1    
}

$premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la première entrée à lire WHERE nom_mot="nom_mot"


//$id_mot=$_GET['id_mot'];
$id_mot = str_replace(",", " ", $id_mot);                   // on remplace les , par des espaces
$tab=explode(" " , $id_mot);                                // on place les différents mots dans un tableau
$nb=count($tab);                                            // on compte le nbr d'élément du tableau.

$sql="select * from video where id_mot like \"%$tab[0]%\" LIMIT $premiereEntree, $messagesParPage";   //on prépare la requête SQL.
for($i=1 ; $i<$nb; $i++)
        {
        $sql.="$operateur id_mot like \"%$tab[$i]%\" ";       // on boucle pour integrer tous les mots dans la requête
        }
//mysql_connect($host,$user, $passwd);                    // on se connecte au serveur
$result = mysql_db_query($db,$sql);                     // on execute la requête SQL.
if($result)
        {
        if(mysql_num_rows($result)==0) echo "<center><b>Pas de Résultat</b></center>
"; //si il n'y a pas de résultats
        else
                {
                echo "<center><b>Résultat(s)</b></center><br>";
                while($row = mysql_fetch_array($result))
                        {
        $nom = $row["nom"];
        echo " | < a href=\"video.php?$nom\">$nom</a> ";     
                echo $row["title"];  echo $row["publication"];
        echo $row["description"];
               
                        }
        mysql_free_result($result);
                }
        }
echo "La requete SQL execute est : $sql" ;

echo' <br />';
    //J'ai rajouté des sauts à la ligne pour espacer les messages.  


echo '<p align="center">Page : '; //Pour l'affichage, on centre la liste des pages
for($i=1; $i<=$nombreDePages; $i++) //On fait notre boucle
{
     //On va faire notre condition
     if($i==$pageActuelle) //Si il s'agit de la page actuelle...
     {
         echo ' [ '.$i.' ] ';
     } 
     else //Sinon...
     {
          echo ' <a href="webtv-thematique.php?page='.$i.'">'.$i.'</a> ';
     }
}
echo '</p>';
?>

pour tester
première page

Pau doit renvoyer 18 resultat selon phpmyadmin
Commerce en renvoi 6

#50 Re : Forum Général PHP » recuperation de variable d'une page à l'autre » 02-08-2010 13:37:13

oui, j'avais déjà testé, mais "LIKE'%$id_mot%' ne fait pas le tri et me renvoie tous les enregistrements sad

Pied de page des forums

Propulsé par FluxBB