PHP|Débutant :: Forums

Advertisement

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

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

#51 Re : Forum Général PHP » Probleme formulaire » 28-07-2010 21:45:10

pour vérifier les champs vides, tu peux récupérer le champ

if(isset($_POST['message']))      $message=$_POST['message'];
else      $mesage="";

puis vérifier s'il est vide et mettre un message d'erreur

if(empty($message) )
    {
    echo '<font color="red">Vous n'avez pas saisi de message !</font>';
    }

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

Et je me demandais aussisi la requete de pagination pouvais gêner ??

$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.

sinon c'est peut être mes tables ?
Champs de ma table vidéo (id (cle primaire et auto incrément) et id_mot sont en INT 11
id   title  nom  contenu  description  publication  fin  etat  id_mot  id_organisateur  lieux

Champs de la table motscle (id_mot est en INT 11 avec auto incrément et clef primaire)
id_mot  nom_mot  etat  alias

serait il possible de faire un select sur les champs "id_mot" des deux tables WHERE id_mot = l'id récupéré ???

C'est l'avant dernière page du site et j'ai jusque demain soir pour tout boucler.
Peut être que demain à tête reposée j'y verrai plus clair

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

ben normalement si, j'ai vérifier dans ma BDD.

Il récupère bien l'id

www.monsite.com/webtv-thematique.php?id_mot=1

mais je dois foirer ma requête.
C'est la clause WHERE qui le perturbe car quand je mets

$retour_messages=mysql_query('SELECT * FROM video   LIMIT '.$premiereEntree.', '.$messagesParPage.'');

while($donnees_messages=mysql_fetch_assoc($retour_messages)) // On lit les entrées une à une grâce à une boucle
{

il fonctionne parfaitement.

Je ne m'y prends peut être pas bien : je souhaite voir apparaitre sur cette page toutes les vidéo de ma bdd qui contiennent l'id du mot selectionné dans le champ id mot de la table vidéo. Est ce que le fait qu'il y ait plusieurs id_mot dans ce champ peut géner la requete ??

parce que du coup, ce n'est pas vraiment WHERE id_mot[large]=[/large]'id_mot' mais plutôt [large]contient[/large] id_mot

#54 Re : Forum Général PHP » limit de select by rand en fonction d'une variable » 28-07-2010 15:45:22

oh là là, vivement que je sois au bout, à coder toute la journée, j'ai les neurones qui fondent.

Merci de votre aide

#55 Re : Forum Général PHP » limit de select by rand en fonction d'une variable » 28-07-2010 15:45:22

quelle quiche big_smile

j'ai rectifié comme suit

<a href="javascript:if(confirm('vous allez tirer au sort le gagnant pour le jeu "<?php echo $row[1]; ?>" ?')) document.location.replace('resultats.php3?id=<?php echo $row[0]; ?>action=tirage&nombre=<?php echo $row[6];?>"><input type="submit" name="Tirage" id="Tirage" value="Tirer" /></a>

couplé avec

if($action == "tirage" && $auth[2] == 1)
  {
   
   
$query = "SELECT * FROM utilisateurs order by rand() limit '{$_GET['nombre']}';"

  //$query="SELECT * FROM utilisateurs order by rand() limit 1 ";
$essai=MYSQL_QUERY($query) or die("Erreur de lecture dans la table utilisateurs");

?>
<table border="2" align="center" cellpadding="5" cellspacing="5">
  <tr>
    <td colspan="3"><h1>Le gagnant est</h1></td>
    </tr>
  <tr>
      <td><div align="left">Nom</div></td>
      <td><div align="left">Prénom</div></td>
      <td><div align="left">E-mail</div></td>
  </tr>
  <?php while($row=MYSQL_FETCH_ROW($essai))
  {
?>
  <tr>
      <td><div align="left"><?php echo $row[2]; ?></div></td>
      <td><div align="left"><?php echo $row[1]; ?></div></td>
      <td><div align="left"><a href="winmail.php3?email=<?php echo $row[4]; ?>" title="Envoyer un mail à <?php echo htmlentities("$row[1] $row[2]"); ?>"><?php echo $row[4]; ?></a></div></td>
  </tr>
  <?php }  ?>
</table>
<?php
  } ?> 
<?php

ce qui me vaut un beau
Parse error: syntax error, unexpected T_VARIABLE in resultats.php3  on line 65

$essai=MYSQL_QUERY($query) or die("Erreur de lecture dans la table utilisateurs");

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

coucou,
maintenant j'ai

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

//$retour_messages=mysql_query('SELECT * FROM video   LIMIT '.$premiereEntree.', '.$messagesParPage.'');
 
      $query = sprintf("SELECT * FROM video WHERE id_mot='id_mot'  LIMIT %d, %d",$premiereEntree,$messagesParPage);
      $retour_messages = mysql_query($query);

 49 while($donnees_messages=mysql_fetch_assoc($retour_messages)) // On lit les entrées une à une grâce à une boucle
{

qui me donne

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

sad

#57 Re : Forum Général PHP » limit de select by rand en fonction d'une variable » 28-07-2010 15:45:22

tu veux dire un echo de nombre ???
car $nombre =$row[6]; dans tout les cas !

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

coucou xTG,
merci de ta réponse, tu va passer sauveur officiel smile.

J'ai un peu modifié mon code pour faire une pagination.
J'ai un peu de mal à savoir quand mettre des doubles ou simples cotes.

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

$retour_messages=mysql_query('SELECT * FROM video WHERE nom_mot='nom_mot'  LIMIT '.$premiereEntree.', '.$messagesParPage.'');

while($donnees_messages=mysql_fetch_assoc($retour_messages)) // On lit les entrées une à une grâce à une boucle
{

qui me donne Parse error: syntax error, unexpected T_STRING

ou

$retour_messages=mysql_query('SELECT * FROM video WHERE nom_mot="nom_mot"  LIMIT '.$premiereEntree.', '.$messagesParPage.'');

qui me donne "Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /webtv-thematique.php  on line 45"

la ligne 45 étant

while($donnees_messages=mysql_fetch_assoc($retour_messages))

je suis un peu larguée sur le coup

#59 Re : Forum Général PHP » limit de select by rand en fonction d'une variable » 28-07-2010 15:45:22

re,

   

 <a href="<?php resultats.php3?action=tirage&nombre=1 ?>">

me donne un

Parse error: syntax error, unexpected '='

PS: merci fred, je prends note smile je n'ai pas codé depuis un certain temps !  Ça va trop vite !!

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

allhambra
Réponses : 24

coucou la communauté,

J'ai un gros problème avec la récupération de variables.
J'ai une table "vidéo" qui contient un champ "id_mot"où il peut y avoir plusieurs ids et une table motscle qui contient également "id_mot" mais unique.

Sur ma première page (plan-webtv.php) je fais une requête pour afficher les mots clé et je fais un lien vers la deuxième page (webtv-thematique.php) :

echo '<li><a href="webtv-thematique.php?'.$row[nom_mot].'">'.$row["alias"].'</a></li>';

sur la page "webtv-thematique.php" ma requête porte sur les videos dont qui contiennent l'id_mot de la première page.
mais, il semblerai que cette variable ne soit pas récupérée. pourtant, je ne fais pas de uset sur la première page.

j'ai testé un echo pour voir

$_GET['nom_mot']
//echo 'Bienvenue sur cette page, ' . $nom_mot ;

, mais ça me donne un

Parse error: syntax error, unexpected T_ECHO in webtv-thematique.php  on line 15

de plus, quand je met WHERE nom_mot='nom_mot'"; j'ai le message : Parse error: syntax error, unexpected T_VARIABLE in /homez.346 webtv-thematique.php  on line 17 ( ligne du select).

$_GET['nom_mot']
//echo 'Bienvenue sur cette page, ' . $nom_mot ;

$sql = "SELECT nom_mot FROM video WHERE nom_mot='nom_mot'";
//"SELECT * FROM video WHERE `id_mot` LIKE '%id_mot%'";
$result = mysql_query($sql) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
if($total) {
     while($row = mysql_fetch_array($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 "\"  */
$nom = "$row[nom]";
  $source_file=("$nom");
 
  $link = ("$URL_site$dest_page$nom");
  $mediacontent = ("$URL_site$dest_file$source_file.$ext1");
  $mediathumbnail = ("$URL_site$dest_file$source_file.$ext2");

?>
       <table border="0" align="center" cellpadding="5" cellspacing="5">
      <tr align="left">
        <td rowspan="2" align="left" width="155px">
        <a href="video.php?<?php echo $row[nom]; ?>">
        <img src="<?php echo $mediathumbnail ?>" align="left" /></a></td>
        <td align="left"><a href="video.php?<?php echo $nom; ?>"><font size="+1"><?php echo $row[title]; ?></font><br/>  Mis en ligne le <?php echo $row[publication]; ?></a></td>
      </tr>
      <tr align="left">
        <td align="left"><?php echo $row[description]; ?></td>
      </tr>
</table>
    <br/>
       <?php }}?>

je pédale dans la choucroute et à force d'avoir le nez dessus, je ne vois plus rien et mes lunettes chauffent, lol.
J'ai besoin d'un regard expérimente s'il vous plait.

#61 Re : Forum Général PHP » limit de select by rand en fonction d'une variable » 28-07-2010 15:45:22

coucou,
merci du coup de main, je teste ça et je vous dit ce que ça donne  smile

#62 Forum Général PHP » limit de select by rand en fonction d'une variable » 28-07-2010 15:45:22

allhambra
Réponses : 10

bonjour à tous smile!

j'ai une table "jeux" et je dois effectuer le tirage au sort des gagnant en fonction du nombre de gagnants indiqué pour chaque jeu.
J'effectue donc un select aléatoire dans une bdd. jusque là, tout va bien.
Là où je coince, c'est que le nombre de sélection dépend du nombre de gagnant que je dois avoir et je ne sais pas le syntaxer.

pour l'instant, j'ai donc un bouton pour chaque nombre de gagnants, mais je suis sûre que l'on peut alléger tout ça:

<?php
$query="SELECT * FROM jeux WHERE id='$id'";
$result=MYSQL_QUERY($query) or die("Erreur de lecture dans la table jeux");

while($row=MYSQL_FETCH_ROW($result))
  {
?>
<br/><br/>
<h1 align="center">Générer les résultats</h1>
<br/>
<?php if(!empty($msg)): ?>
<p align="center"><b><?php echo stripslashes($msg); ?></b></p>
    <?php
    unset($msg);
    endif; ?>
    <table border="0" align="center" cellpadding="5" cellspacing="5">
  <tr>
    <td colspan="2">Le Jeu <?php echo $row[1]; ?>
    <br/><?php echo $row[2]; ?> en partenariat avec <?php echo $row[3]; ?><br/><br/>
    Qui commence le <?php echo $row[4]; ?> et fini le <?php echo $row[5]; ?><br/>
    doit avoir  <?php echo $row[6]; ?> gagnants
   
   
    </td>
    </tr>
  <tr>
    <td colspan="2"><div align="center"><a href="javascript:if(confirm('vous allez tirer au sort le gagnant pour le jeu "<?php echo $row[1]; ?>" ?')) document.location.replace('resultats.php3?id=<?php echo $row[0]; ?>&action=tirage1');"></a><a href="javascript:if(confirm('vous allez tirer au sort le gagnant pour le jeu "<?php echo $row[1]; ?>" ?')) document.location.replace('resultats.php3?id=<?php echo $row[0]; ?>&action=tirage1');">
      <input type="submit" name="Tirage1" id="Tirage1" value="1 gagnant" />
    </a><a href="javascript:if(confirm('vous allez tirer au sort 2 gagnants pour le jeu "<?php echo $row[1]; ?>" ?')) document.location.replace('resultats.php3?id=<?php echo $row[0]; ?>&action=tirage2');"> <input type="submit" name="Tirage2" id="Tirage2" value="2 gagnants" /></a>
     <a href="javascript:if(confirm('vous allez tirer au sort 3 gagnants pour le jeu "<?php echo $row[1]; ?>" ?')) document.location.replace('resultats.php3?id=<?php echo $row[0]; ?>&action=tirage3');"> <input type="submit" name="Tirage3" id="Tirage2" value="3 gagnants" /></a>
     <a href="javascript:if(confirm('vous allez tirer au sort 4 gagnants pour le jeu "<?php echo $row[1]; ?>" ?')) document.location.replace('resultats.php3?id=<?php echo $row[0]; ?>&action=tirage4');"> <input type="submit" name="Tirage4" id="Tirage2" value="4 gagnants" /></a>
    </div></td>
    </tr>
  <tr>
    <td colspan="2"><?php if($action == "tirage1" && $auth[2] == 1)
  {
    $query="SELECT * FROM utilisateurs order by rand() limit 1 ";
$essai=MYSQL_QUERY($query) or die("Erreur de lecture dans la table utilisateurs");?>
<table border="2" align="center" cellpadding="5" cellspacing="5">
  <tr>
    <td colspan="3"><h1>Le gagnant est</h1></td>
    </tr>
  <tr>
      <td><div align="left">Nom</div></td>
      <td><div align="left">Prénom</div></td>
      <td><div align="left">E-mail</div></td>
  </tr>
  <?php while($row=MYSQL_FETCH_ROW($essai))
  {
?>
  <tr>
      <td><div align="left"><?php echo $row[2]; ?></div></td>
      <td><div align="left"><?php echo $row[1]; ?></div></td>
      <td><div align="left"><a href="winmail.php3?email=<?php echo $row[4]; ?>" title="Envoyer un mail à <?php echo htmlentities("$row[1] $row[2]"); ?>"><?php echo $row[4]; ?></a></div></td>
  </tr>
  <?php }  ?>
</table>
<?php
  } ?>

<?php if($action == "tirage2" && $auth[2] == 1)
  {
    $query="SELECT * FROM utilisateurs order by rand() limit 2 ";
$essai=MYSQL_QUERY($query) or die("Erreur de lecture dans la table utilisateurs");
?><table border="3" align="right" cellpadding="5" cellspacing="5">
  <tr>
    <td colspan="3"><h1>Les gagnants sont</h1></td>
    </tr>
  <tr>
    <td><div align="left">Nom</div></td>
    <td><div align="left">Prénom</div></td>
   <td><div align="left">E-mail</div></td>
  </tr>
  <?php while($row=MYSQL_FETCH_ROW($essai))
  {
?>
  <tr>
    <td><div align="left"><?php echo $row[2]; ?></div></td>
    <td><div align="left"><?php echo $row[1]; ?></div></td>
    <td><div align="left"><a href="winmail.php3?email=<?php echo $row[4]; ?>" title="Envoyer un mail à <?php echo htmlentities("$row[1] $row[2]"); ?>"><?php echo $row[4]; ?></a></div></td>
 </tr>
  <?php }  ?>
</table>
<?php
  } ?>

<?php if($action == "tirage3" && $auth[2] == 1)
  {
    $query="SELECT * FROM utilisateurs order by rand() limit 3 ";
$essai=MYSQL_QUERY($query) or die("Erreur de lecture dans la table utilisateurs");?>
<table border="2" align="center" cellpadding="5" cellspacing="5">
  <tr>
    <td colspan="3"><h1>Les gagnants sont</h1></td>
    </tr>
  <tr>
      <td><div align="left">Nom</div></td>
      <td><div align="left">Prénom</div></td>
      <td><div align="left">E-mail</div></td>
  </tr>
  <?php while($row=MYSQL_FETCH_ROW($essai))
  {
?>
  <tr>
      <td><div align="left"><?php echo $row[2]; ?></div></td>
      <td><div align="left"><?php echo $row[1]; ?></div></td>
      <td><div align="left"><a href="winmail.php3?email=<?php echo $row[4]; ?>" title="Envoyer un mail à <?php echo htmlentities("$row[1] $row[2]"); ?>"><?php echo $row[4]; ?></a></div></td>
 </tr>
  <?php }  ?>
</table>
<?php
  } ?>


<?php if($action == "tirage4" && $auth[2] == 1)
  {
    $query="SELECT * FROM utilisateurs order by rand() limit 4 ";
$essai=MYSQL_QUERY($query) or die("Erreur de lecture dans la table utilisateurs"); ?>

<table border="2" align="center" cellpadding="5" cellspacing="5">
  <tr>
    <td colspan="3"><h1>Les gagnants sont</h1></td>
    </tr>
  <tr>
      <td><div align="left">Nom</div></td>
      <td><div align="left">Prénom</div></td>
      <td><div align="left">E-mail</div></td>
  </tr>
  <?php while($row=MYSQL_FETCH_ROW($essai))
  {
?>
  <tr>
      <td><div align="left"><?php echo $row[2]; ?></div></td>
      <td><div align="left"><?php echo $row[1]; ?></div></td>
      <td><div align="left"><a href="winmail.php3?email=<?php echo $row[4]; ?>" title="Envoyer un mail à <?php echo htmlentities("$row[1] $row[2]"); ?>"><?php echo $row[4]; ?></a></div></td>
</tr>
  <?php }  ?>
</table>
<?php
  } ?>

 
</td>

d'autre part, mon message de confirmation s'affiche 2 fois sad

un petit coup de main est bienvenu

#63 Re : Forum Général PHP » recuperer un champ sql dans un fichier xml avec php » 22-07-2010 08:25:49

Bonjour JC,

J'ai essayé ta syntaxe, sans succès !
Ce que je trouve étrange, c'est que les autres champs sont bien pris en compte et s'affichent correctement.


Ca y est, j'ai trouvé :

j'ai changé

$source_file=stripslashes($nom);

en

$source_file=$row["nom"];

smile

Merci à vous deux d'avoir pris le temps de me répondre.
Bonne journée et bon code wink

#64 Re : Forum Général PHP » recuperer un champ sql dans un fichier xml avec php » 22-07-2010 08:25:49

Bonsoir xTG, merci de ta réponse rapide.
j'ai modifié comme suit,

 $query = "SELECT * FROM video WHERE `title` LIKE '%$mot%' OR `description` LIKE '%$mot%' LIMIT 0, 30";
    $result = mysql_query($query) or die("Impossible d'interroger la base de données");
//$num = mysql_num_rows($result);


// si on a récupéré un résultat on l'affiche.

if( $result = mysql_fetch_array( $query))  
 
 {

ce qui genère une erreur

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL

#65 Forum Général PHP » recuperer un champ sql dans un fichier xml avec php » 22-07-2010 08:25:49

allhambra
Réponses : 4

bonjour à tous,

je dois créer un fichier xml lié à un mot clé que je récupère via un formulaire qui est traité par la page gene-list.php.

j'ai un soucis : mon code ne récupère pas le champ sql "nom" qui me sert à générer les chemins :
- vers la page video.php?$nom
- vers la vignette : racine/dossier/video/$nom.jpg
- vers la video : racine/dossier/video/$nom.flv

Il semble donc que mon

$source_file=stripslashes($nom);

ou la façon dont je les appelle
ne soit pas pris en compte ou mal rédigé.:(
Toute aide est bienvenue smile

gene-liste.php

 $query = "SELECT * FROM video WHERE `title` LIKE '%pau%' OR `description` LIKE '%pau%' LIMIT 0, 30";

 
    $result = mysql_query($query) or die("Impossible d'interroger la base de données");
$num = mysql_num_rows($result);
 
// connaître le nbre de champs
  $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=stripslashes($nom);
  $link = ("$URL_site$dest_page$source_file");
  $mediacontent = ("$URL_site$dest_file$source_file.$ext1");
  $mediathumbnail = ("$URL_site$dest_file$source_file.$ext2");

// s'il y a des résultats  
if ($num != 0) {
      $file= fopen("../xml/$mot.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";
  //} else {
  //$_xml .="\t<page title=\"" . $row["votrechamp"] . "\">\r\n";
//  $_xml .="\t\t<para>". $row["votrechamp"] ." passe:". $row["pass"] ."</para>\r\n";
//  $_xml .="\t</page>\r\n"; } }
//  $_xml .="</channel>"; fwrite($file, $_xml); fclose($file);
//  echo  "Le fichier XML a etait créé <a href=\"pau.xml\">Show source :).</a>";
//  } else {
//  echo "erreur"; }


        }

//$_xml ="</channel>";
//$_xml ="</rss>";
fwrite($file, $_xml);
//fclose($file);
       echo "<p><p></p><br/>Le fichier XML a etait créé <a  href=\"../xml/$mot.xml\">Show source :).</p></a>";
}
else {
   echo "erreur";
}  
?>

#66 Re : MySQL, PostgreSQL, etc... » erreur sql Warning: mysql_num_rows() » 21-07-2010 10:20:21

coucou Pierrot, merci de ton aide !
effectivement, rédigé comme ça je n'ai plus d'erreur et ça c'est cool big_smile
ce qui l'est moins, c'est que mon code ne génère pas ma liste sad  et comme je n'ai pas d'erreur, je suis bien en peine de savoir pourquoi.
peut être la syntaxe de  $file= fopen("../xml/$mot.xml", "w");
je vais voir sur le forum php.

merci encore lol

#67 Re : MySQL, PostgreSQL, etc... » erreur sql Warning: mysql_num_rows() » 21-07-2010 10:20:21

Bonjour Pierrot,
merci beaucoup de ta réponse.
Maintenant j'ai toujours "Warning: mysql_num_rows()" mais sur la ligne 27 :

25 .$query = "SELECT * FROM video WHERE `title` LIKE %$mot%" . " OR `description` LIKE %$mot% LIMIT 0, 30";
   
26 .$result = mysql_query($query);
27 .$num_rows = mysql_num_rows($result);
28 .  // si on a récupéré un résultat on l'affiche.
29 .if($num_rows) {

#68 MySQL, PostgreSQL, etc... » erreur sql Warning: mysql_num_rows() » 21-07-2010 10:20:21

allhambra
Réponses : 4

bonjour à tous smile !

J'ai un petit formulaire

 <form id="form1" name="form1" method="post" action="gene-liste.php">
           <label>
             <input name="mot" type="text" id="mot" />
           </label>
           <input name="Submit" type="submit" id="Submit" value="Générer" />
             </form>

qui doit récupérer le champ "mot" pour faire une recherche sql et générer une liste xml des résultats.
J'ai donc

$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é
?>
<table align="center" width="98%" border="0"><tr><td>

<?php echo "
  Veuillez entrer un mot clé s'il vous plaît!
  <p>";

?>
</td></tr></table>
<?php
}else {                    
// la requete mysql
$query = "SELECT * FROM video WHERE `title` LIKE %$mot%" . " OR `description` LIKE %$mot% LIMIT 0, 30";
   
$result = mysql_query($query);
$num = mysql_num_rows($result);
  // si on a récupéré un résultat on l'affiche.
if($num) {
 
// connaître le nbre de champs
  $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=stripslashes($nom);
  $link = ("$URL_site$dest_page?$source_file");
  $mediacontent = ("$URL_site$dest_file$source_file.$ext1");
  $mediathumbnail = ("$URL_site$dest_file$source_file.$ext2");
 
// s'il y a des résultats  
if ($num != 0) {
      $file= fopen("../xml/$mot.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);
fclose($file);
?>
<table width="98%" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td align="center" bgcolor="#913E8E"><?php echo "Le fichier XML a etait créé <a      href=\"../xml/$mot.xml\">Show source :).</a>";
}
else {
   echo "erreur";
}  }}
?>
</td>
  </tr>
</table>

Qui génère l'erreur suivante : "Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource"


J'ai le tête dedans depuis trois jours ( la honte ! sad) mais je ne vois pas où ça bug.
J'avous qu'un coup de main pour comprendre mon erreur serait bienvenu

#69 Re : Forum Général PHP » Parse error: syntax error. : dans le nom de mon champs » 15-07-2010 16:09:48

coucou, merci de ta réponse.
Je ne voulais pas changer les noms de champs car grâce à eux, je genère une liste de lecture xml, mais je me suis arrangée autrement.
je me suis débarrassée de mes ":".
et ça marche nickel.
Merci xTG big_smile

Maintenant, me reste à trouver une méthode pour générer mes chemins sad

Résolu

#70 Forum Général PHP » Parse error: syntax error. : dans le nom de mon champs » 15-07-2010 16:09:48

allhambra
Réponses : 2

bonjour,
J'ai deux petits soucis.
1 * j'ai une table sql qui contient "media:content url" et "media:thumbnail url".
J'ai fait un formulaire avec les deux champs texte correspondants afin de récupérer les chemins et les insérer dans ma table.
Lors du traitement du formulaire, j'ai l'erreur "Parse error: syntax error, unexpected ':' in ajout.php on line 29".

La ligne concernée est :

if(isset($_POST['media:content url']))      $media:content url=$_POST['media:content url'];
 else      $media:content url="";

 if(isset($_POST['media:thumbnail url']))      $media:thumbnail url=$_POST['media:thumbnail url'];
 else      $media:thumbnail url="";

2 * je dois construire des chemins dynamiques par rapport au nom de mes vidéos.
Par exemple, si ma vidéo s'appelle "zorro", je dois générer
www.monsite.com/video.php?zorro.
-  video/zorro.flv
-  video/zorro.jpeg

Dans mon formulaire en methode post, j'ai donc mis 3 inputs de ce type.
<input  name="link" type="text" id="link" value="http://www.monsite.com/video.php?<? echo $_POST['nom'] ?>" size="60">
<input  type="hidden" name="media:content url" type="text" id="media:content url" value="video/<? echo $_POST['nom'] ?>.flv"/>
<input type="hidden" name="media:thumbnail url" type="text" id="media:thumbnail url" value="video/<? echo $_POST['nom'] ?>.jpg" />
mais je me demande comment si cette méthode va fonctionner avant la validation du formulaire.

Si non, quelles sont les autres pistes ??

Toute aide est bienvenue, merci wink

#71 Re : MySQL, PostgreSQL, etc... » You have an error in your SQL syntax; lors d'un insert via formulaire » 10-12-2009 14:17:45

Coucou,
Merci pour vos réponses (quelle quiche je suis hmm )
Ça marche nickel chrome  big_smile

#72 MySQL, PostgreSQL, etc... » You have an error in your SQL syntax; lors d'un insert via formulaire » 10-12-2009 14:17:45

allhambra
Réponses : 9

bonjour à tous,
j'ai un formulaire html qui est traité par insert.php.

<?php
// connexion à la base de données:
$cn = mysql_connect("monhost","monlog","monpass");
mysql_select_db("mabdd",$cn);


$sql = "insert into templates values ('$menu1','$menu2','$menu3','$menu4','$site','$slog','$cat1','$cat2','$cat3','$cat4','$cat5','$titre1','$titre2','$titre3','$titremenu1','$titremenu2','$texte1','$texte1b','$texte2','$texte3','$textemenu2','$bodybg','$menubg','$headerbg','$h2clr','$pclr','$aclr)";
$result = mysql_query($sql,$cn)or die(mysql_error());

?>

Il me retourne l'erreur suivante : 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 ''#000080)' at line 1

qui correspond à un champ bodybg qui est un select du type :
<select name="bodybg" size="1" class="select" id="bodybg">
<option value="#000080" selected="selected"style="background-color:#000080;">navy</option>
<option value="#00008B"style="background-color:#00008B;">darkblue</option>
<option value="#0000CD"style="background-color:#0000CD;">mediumblue</option>
ect...

je crois qu'il y à un soucis sur la récupération de la valeur mais je ne sais pas comment m'y prendre.

Toute aide est bienvenue wink

#73 Re : MySQL, PostgreSQL, etc... » recuperation sql d'un select multiple » 10-09-2009 14:59:23

coucou et merci pour ta réponse smile

si je te suis bien il me faudrait quelque chose du genre :

<?php
public function dbInsert($table, $values)
{
$this->conn();

$fieldnames = array_keys($values[0]);

$size = sizeof($fieldnames);
$i = 1;
$sql = "INSERT INTO$table";

$fields = '( ' . implode(' ,', $fieldnames) . ' )';

$bound = '(:' . implode(', :', $fieldnames) . ' )';

$sql .= $fields.' VALUES '.$bound;


$stmt = $this->db->prepare($sql);
foreach($values as $vals)
{
$stmt->execute($vals);
}
}
?>

où dans mon cas, $fieldnames= $services ???

#74 MySQL, PostgreSQL, etc... » recuperation sql d'un select multiple » 10-09-2009 14:59:23

allhambra
Réponses : 2

Bonjour à tous,

Je cherche à récupérer les données d'un select multiple dans le champ "services" de ma base de données.

ma champ service est en varchar(255)      latin1_swedish_ci       not null

Dans ma page html :

<?php
// Traitement après post et affichage des valeurs du champ select
if ($HTTP_POST_VARS["services"] != "")
{
    $services_Array = $HTTP_POST_VARS["services"];
    for ($num = 0; $num < count($services_Array); $num++)
    {
    echo $services_Array[$num]."<br>";
    }
}
?>

<script>
function PostSelect(liste)
{
    // On compte le nombre d'item de la liste select
    Nbservices = document.forms[liste].elements.services.length;
   
    // On lance une boucle pour selectionner tous les items
    for (a = 0; a < Nbservices; a++)
    {
    document.forms[liste].elements.services.options[a].selected = true;
    }
   
    // On modifie l'ID  du champ select pour que PHP traite cette
    // dernière comme un array
    document.forms[liste].elements.services.name = "services[]";

    // On soumet le formulaire
    document.forms[liste].submit();
}
</script>

dans mon body, j'ai un form dans un form :

<form method="POST" action="ajout_location.php">
mes autres champs
<form name="services" method="post" action="capture_select.php">
    <select name="services" size="4" multiple style="width: 150px">
     <option value="Piscine">Piscine</option>
                      <option value="Jardin">Jardin</option>
                      <option value="Terrasse">Terrasse</option>
                      <option value="Parking">Parking</option>
    </select><br><br>
    <input name="Envoyer" type="button" value="Envoyer" onClick="javascript:PostSelect('services')">
</form></form>

le tout traité par ajout location.php

<?php

include ("conec.php");
// cookie d'indentification
include ("cookie.php");
$type =  mysql_real_escape_string($_POST['type']);
$pays =  mysql_real_escape_string($_POST['pays']);
$departement =  mysql_real_escape_string($_POST['departement']);
$ville =  mysql_real_escape_string($_POST['ville']);
$nom_location = mysql_real_escape_string($_POST['nom_location']);
$description = mysql_real_escape_string($_POST['description']);
$pieces =  mysql_real_escape_string($_POST['pieces']);
$surface =  mysql_real_escape_string($_POST['surface']);
$services = mysql_escape_string($_POST['services']);
//$services = (";" $_POST['services']);

// requète d'insertion dans la table

mysql_query("INSERT INTO locations VALUES ('', '$type', '$pays', '$departement', '$ville','$nom_location', '$description', '$pieces', '$surface', '$services')")or die ("erreur requète");

// on ferme la connexion
mysql_close();
echo "<div class = \"ptitre\"> </b><br><br><br><br><b>La location à été ajoutée</b><br><br><br><br> Vous allez être redirigé vers la page de configuration</div>";

?><head>
<meta http-equiv="refresh" content="2;url=config_reserv.php">
<title>Ajout d'une location</title></head>
<link REL="StyleSheet" TYPE="text/css" HREF="style.css">
<p> </p>
<p> </p>
<table width="50%" border="0" cellspacing="0" cellpadding="0" align="center">
  <tr>
    <td class="texte">
      <div align="center">Si rien ne se passe cliquez ici : <a href="config_reserv.php">Configuration</a></div>
    </td>
  </tr>
</table>

tous les champs sont bien importés dans la BDD, mais dans le champ services, il ne m'affiche que la dernière des valeurs selectionnée.

Par exemple, si je coche Jardin et terrasse, il ne m'enregistre que terrasse.

j'ai du rater une étape, et toute aide est bienvenue smile

Pied de page des forums

Propulsé par FluxBB