PHP|Débutant :: Forums

Advertisement

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

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

#1 Re : MySQL, PostgreSQL, etc... » Insert sql multiples » 29-04-2014 19:05:06

oui c'était bien les quotes le problème. J'ai modifié comme suit et ca fonctionne:


// on crée nos variables, et au passage on retire les éventuels espaces
if (isset($_POST['slide1_titre'])){
    $slide1_titre = (mysql_real_escape_string ($_POST['slide1_titre']));
  }
if (isset($_POST['slide1_text'])){
    $slide1_text = (mysql_real_escape_string ($_POST['slide1_text']));
  }
if (isset($_POST['slide2_titre'])){
    $slide2_titre = (mysql_real_escape_string ($_POST['slide2_titre']));
  }
if (isset($_POST['slide2_text'])){
    $slide2_text = (mysql_real_escape_string ($_POST['slide2_text']));
  }
if (isset($_POST['slide3_titre'])){
    $slide3_titre = (mysql_real_escape_string ($_POST['slide3_titre']));
  }
if (isset($_POST['slide3_text'])){
    $slide3_text = (mysql_real_escape_string ($_POST['slide3_text']));
  }

#2 MySQL, PostgreSQL, etc... » Insert sql multiples » 29-04-2014 19:05:06

allhambra
Réponses : 2

Bonjour les codeurs smile.
j'ai un formulaire basique dont je souhaite ventiler les résultats dans deux tables.
J'ai donc fait deux requêtes dans ma page de traitement, la première fonctionne sans soucis mais la seconde me mets une erreur sql et l'insert ne se fait pas.
voici ma page :

<?php require_once('../Connections/config.php'); ?>
<?php

// on crée nos variables, et au passage on retire les éventuels espaces
if (isset($_POST['slide1_titre'])){
    $slide1_titre = ($_POST['slide1_titre']);
  }
if (isset($_POST['slide1_text'])){
    $slide1_text = ($_POST['slide1_text']);
  }
if (isset($_POST['slide2_titre'])){
    $slide2_titre = ($_POST['slide2_titre']);
  }
if (isset($_POST['slide2_text'])){
    $slide2_text = ($_POST['slide2_text']);
  }
if (isset($_POST['slide3_titre'])){
    $slide3_titre = ($_POST['slide3_titre']);
  }
if (isset($_POST['slide3_text'])){
    $slide3_text = ($_POST['slide3_text']);
  }
 
 
  $chemin = "../uploads/" ;
   
    if(!empty($_FILES["logo"]["name"]))
{
  //nom du fichier choisi:
  $nomFichier    = $_FILES["logo"]["name"] ;
  //nom temporaire sur le serveur:
  $nomTemporaire = $_FILES["logo"]["tmp_name"] ;
  //type du fichier choisi:
  $typeFichier   = $_FILES["logo"]["type"] ;
  //poids en octets du fichier choisit:
  $poidsFichier  = $_FILES["logo"]["size"] ;
  //code de l'erreur si jamais il y en a une:
  $codeErreur    = $_FILES["logo"]["error"] ;
 

 
  if(copy($nomTemporaire, $chemin.$nomFichier))
    //echo("<p>l'upload du logo a réussi</p>") ;
    echo("<p>Upload du logo : ". OK."</p>");
  else
    echo("<p>l'upload du logo1 a échoué</p>") ;
}//fin if
else
{
  echo("Vous n'avez pas choisit de fichier!!". RETOUR);
  //echo("<a href=\"./biens.php\">Retour</a><br>") ;
}//fin else

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

 
  if(copy($nomTemporaire, $chemin.$nomFichier2))
    //echo("<p>l'upload de l'image principale a réussi</p>") ;
    echo '<p>upload de l\'image principale : '. OK.'</p>';
  else
    echo("<p>l'upload de l'image principale a échoué</p>") ;
}//fin if
else
{
  echo("Vous n'avez pas choisit de fichier!!". RETOUR);
  //echo("<a href=\"./biens.php\">Retour</a><br>") ;
}//fin else

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

 
  if(copy($nomTemporaire, $chemin.$favicon))
    //echo("<p>l'upload de l'image principale a réussi</p>") ;
    echo '<p>upload du favicon : '. OK.'</p>';
  else
    echo("<p>l'upload de l'image principale a échoué</p>") ;
}//fin if
else
{
  echo("Vous n'avez pas choisit de fichier!!". RETOUR);
  //echo("<a href=\"./biens.php\">Retour</a><br>") ;
}//fin else
  if(!empty($_FILES["slide1"]["name"]))
{
  //nom du fichier choisi:
  $slide1    = $_FILES["slide1"]["name"] ;
  //nom temporaire sur le serveur:
  $nomTemporaire = $_FILES["slide1"]["tmp_name"] ;
  //type du fichier choisi:
  $typeFichier   = $_FILES["slide1"]["type"] ;
  //poids en octets du fichier choisit:
  $poidsFichier  = $_FILES["slide1"]["size"] ;
  //code de l'erreur si jamais il y en a une:
  $codeErreur    = $_FILES["slide1"]["error"] ;
 

 
  if(copy($nomTemporaire, $chemin.$slide1))
    //echo("<p>l'upload de l'image principale a réussi</p>") ;
    echo '<p>upload du slide 1 : '. OK.'</p>';
  else
    echo("<p>l'upload du slide 1 a échoué</p>") ;
}//fin if
else
{
  echo("Vous n'avez pas choisit de fichier!!". RETOUR);
  //echo("<a href=\"./biens.php\">Retour</a><br>") ;
}//fin else

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

 
  if(copy($nomTemporaire, $chemin.$slide2))
    //echo("<p>l'upload de l'image principale a réussi</p>") ;
    echo '<p>upload du slide 2 : '. OK.'</p>';
  else
    echo("<p>l'upload du slide 2 a échoué</p>") ;
}//fin if
else
{
  echo("Vous n'avez pas choisit de fichier!!". RETOUR);
  //echo("<a href=\"./biens.php\">Retour</a><br>") ;
}//fin else

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

 
  if(copy($nomTemporaire, $chemin.$slide3))
    //echo("<p>l'upload de l'image principale a réussi</p>") ;
    echo '<p>upload du slide 3 : '. OK.'</p>';
  else
    echo("<p>l'upload du slide 3 a échoué</p>") ;
}//fin if
else
{
  echo("Vous n'avez pas choisit de fichier!!". RETOUR);
  //echo("<a href=\"./biens.php\">Retour</a><br>") ;
}//fin else


mysql_select_db($database_config, $config);
$req1 = "UPDATE site SET logo='$nomFichier', image='$nomFichier2', favicon='$favicon' WHERE id=1";
$req2 = "INSERT INTO slides VALUES
('', '".$slide1_titre."', '".$slide1_text."', '".$slide1."'),
('', '".$slide2_titre."', '".$slide2_text."', '".$slide2."'),
('', '".$slide3_titre."', '".$slide3_text."', '".$slide3."')
";
mysql_query($req1) or die('Erreur SQL requete update !'.$sql.'<br>'.mysql_error());
mysql_query($req2) or die('Erreur SQL requete insert !'.$sql.'<br>'.mysql_error());

echo 'Installation : '. OK;

print("<script type=\"text/javascript\">setTimeout('location=(\"etape5.php\")' ,1000);</script>");

?>

l'erreur générée :

Upload du logo : OK

upload de l'image principale : OK

upload du favicon : OK

upload du slide 1 : OK

upload du slide 2 : OK

upload du slide 3 : OK

Erreur SQL requete insert !
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 'entreprise', 'slide_1.jpg'), ('', 'Conception', 'sites
et applications we' at line 2

toute aide est bienvenue, a force de bloquer la dessus, je n'ai plus les yeux en face des trous sad

#3 Re : Forum Général PHP » probleme de substr pour adresse de repertoire » 28-06-2012 17:25:02

Merci de ta réponse JC. Je vais temporiser comme ça le temps de me pencher plus avant sur la question pour comprendre d'où viens le soucis.

#4 Forum Général PHP » probleme de substr pour adresse de repertoire » 28-06-2012 17:25:02

allhambra
Réponses : 3

Bonjour à tous,
j'ai un petit soucis tout bête, mais je ne trouve pas la solution.
Je cherche à lire le contenu d'un dossier en fonction de la langue que je récupère dans l'url jusque là tout va bien.
Mon problème réside dans le fait que le chemin de mon document doit remonter d'un cran

url souhaitée : monsite.com/images/docs/composites/fr/Carbo stamp ud tape M0E AC-TE-008.pdf
url actuelle : monsite.com/fr/images/docs/composites/fr/Carbo stamp ud tape M0E AC-TE-008.pdf
Quand je modifie le substr de $lang, mes listes déroulantes sont vides sad

scan_docs.php

<?php
function lire_repertoire($repertoire)  {

global $dossierActu;
global $docs_ar;

$lang = substr($repertoire, -2, 2);
  $docs_ar = array();

if($lang == "fr" || $lang == "uk"){
  $folder = dir($repertoire);

    while ($fichier = $folder->read())
    {
    $path_parts = pathinfo($fichier);
   
    if ( $fichier != '.' && $fichier != '..' && $fichier!='index.php' && $fichier!='index.html')

     {  

      $sub_path =$repertoire."/".$fichier;

      if (is_dir($sub_path ) )

       {

      $dossierActu=$fichier;

      // $xml.='<item nom="'.$fichier.'">';

         lire_repertoire($sub_path);

        // $xml.="</item>";

      }

      else{

      $extension=$path_parts["extension"];

      // taille et poids du fichier ------------------------------------------------------------
     
        array_push($docs_ar, $fichier);

        // print_r($docs_ar);

        if($repertoire == "../images/docs"){

          foreach($docs_ar as $c => $v){

              echo utf8_encode("&".$c."=".$v);

            }

        }

      }

    }

    }

  }

};

  // lire_repertoire("docs");

?>

affichage des listes déroulantes

      <?php
  include("scan_docs.php");
 
  $adresse=$_COOKIE['30fccdf4e48b299739c96fcc177ac438']; // récupération de la langue dans l'url
  $adr = "/homez.60/monsite/www/clients/toray/images/docs/";
 
  if ($adresse=="fr-FR"){
    $lang = "fr";
  } if ($adresse=="en-GB"){
    $lang = "uk";
  }
 
?>
                <div class="carbone"><h2>carbone</h2><br />
<?php lire_repertoire($adr."fc_carac/".$lang);
        $docs ="<select name='fc_carac' size='1' id='fc_carac' onChange=\"MM_jumpMenu('parent',this,1)\">";
          $docs .= "<option>  ------  </option>";
          foreach($GLOBALS['docs_ar'] as $cle => $valeur){
            $docs .= "<option title=".substr($valeur, 0, -4)." value='images/docs/fc_carac/".$lang."/".$valeur."' >".substr($valeur, 0, -4)."</option>";
          };
          $docs .= "</select>";
          echo $docs;
      ?>
    </div>
      <div class="composites" style="float:left"><h2>composites</h2><br />
<?php
        lire_repertoire($adr."composites/fr");
      $comp ="<select name='composites' size='1' id='composites' onChange=\"MM_jumpMenu('parent',this,1)\">";
          $comp .= "<option>  ------  </option>";
          foreach($GLOBALS['docs_ar'] as $cle => $valeur){
            $comp .= "<option title=".substr($valeur, 0, -4)." value='images/docs/composites/".$lang."/".$valeur."' >".substr($valeur, 0, -4)."</option>";
          };
          $comp .= "</select>";
          echo $comp;
      ?>
    </div>
    <div class="autres"><h2>autres documents</h2><br />
<?php
        lire_repertoire($adr."divers/fr");
      $div ="<select name='divers' size='1' id='divers' onChange=\"MM_jumpMenu('parent',this,1)\">";
          $div .= "<option>  ------  </option>";
          foreach($GLOBALS['docs_ar'] as $cle => $valeur){
            $div .= "<option title=".substr($valeur, 0, -4)." value='images/docs/divers/".$lang."/".$valeur."' >".substr($valeur, 0, -4)."</option>";
          };
          $div .= "</select>";
          echo $div;
      ?>
    </div>
                </div>

Tout regard avisé est bienvenu smile

#5 Re : Forum Général PHP » tri pour affichage de requete sql » 05-07-2011 08:04:22

Mon but est juste d'afficher et de gérer les ajouts dans les menus dynamiquement.
Il y à peut être une façon plus simple d'y parvenir en évitant les requêtes superflues, dans ce cas, je suis tout ouïe.

Sinon ma mise  en forme est réussie grâce à :

<div id="menu_section">
        <ul id="nav">
       <?php
mysql_select_db($database_dbprotect, $dbprotect);

$req1="SELECT * FROM menus";
$res1=@mysql_query($req1,$dbprotect);
if(!$res1)
{
echo "Lecture du 1 impossible";
}
else
{
while($a = mysql_fetch_array($res1))
{
    $types= $a[nom];
$typ=addslashes($types);
?>
<li><a href="#"><?php echo ''.$a['nom'].'' ?></a>
<ul>
<?php
$tab=array();
$req2="SELECT DISTINCT lieu FROM videos WHERE type='$typ'";
$res2=@mysql_query($req2,$dbprotect);

if(!$res2)
{
echo "Lecture du 2 impossible";
}
else
{
while($b = mysql_fetch_array($res2))
{
$i=1;
$num=1;
 $lieux= $b[lieu];
$lieu=addslashes($lieux);
?>
<li><a href="#<?php echo ''.$b['lieu'] ?>" onClick="setVideoListe('<?php echo ''.$b['lieu'].''?>', '<?php echo $i++; ?>')"><?php echo ''.$b['lieu'].'' ?></a>
<?php // foreach ($b as $lieu) { ?>
<ul>
   
    <?php $req3="SELECT * FROM videos WHERE type='$typ' AND lieu='$lieu' AND etat=1 ORDER BY lieu";
  $res3=@mysql_query($req3,$dbprotect);
  if(!$res3)
{
echo "Lecture du 3 impossible";
}
else
{
while($c = mysql_fetch_array($res3))
{

?>
                 
                   
                        <li><a href="#<?php echo ''.$b['lieu'].'' ?>" onClick="setVideoListe('<?php echo ''.$b['lieu'].''?>', '<?php echo $i++; ?>')"><?php echo $num++; ?> <?php echo ''.$c['titre'].'' ?><br/>
                          <span class="stitre"> par <?php echo ''.$c['auteur'].'' ?></span></a></li> <?php } ?>
                         
                      </ul>  <?php }?></li>  <?  } ?>   <?php } ?></ul></li> <?php } ?>
                   
                 
                 <?php } ?>
  </ul>
</div>

#6 Re : Forum Général PHP » tri pour affichage de requete sql » 05-07-2011 08:04:22

Bonjour les codeurs,
J'avoue que je ne suis pas une as du code et que j'ai encore beaucoup de chose à apprendre.
Du coup, j'ai encore tout chagé :
2 tables (menus :"items parents" et videos)

<div id="menu_section">
        <ul id="nav">
       <?php
mysql_select_db($database_dbprotect, $dbprotect);

$req1="SELECT * FROM menus";
$res1=@mysql_query($req1,$dbprotect);
if(!$res1)
{
echo "Lecture du 1 impossible";
}
else
{
while($a = mysql_fetch_array($res1))
{
    $types= $a[nom];
$typ=addslashes($types);
?>
<li><a href="#"><?php echo ''.$a['nom'].'' ?></a>
<ul>
<?php
$req2="SELECT  * FROM videos WHERE type='$typ' AND etat=1 ORDER by 'lieu'";
$res2=@mysql_query($req2,$dbprotect);
$i=0;
$num=1;
if(!$res2)
{
echo "Lecture du 2 impossible";
}
else
{
while($b = mysql_fetch_array($res2))
{

?>
<li><a href="#<?php echo ''.$b['lieu'] ?>" onClick="setVideoListe('<?php echo ''.$b['lieu'].''?>', '<?php echo $i++; ?>')"><?php echo ''.$b['lieu'].'' ?></a>
  <?php // }
 
  ?>
                      <ul>
                     
                        <li><a href="#<?php echo ''.$b['lieu'].'' ?>" onClick="setVideoListe('<?php echo ''.$b['lieu'].''?>', '<?php echo $i++; ?>')"><?php echo $num++; ?> <?php echo ''.$b['titre'].'' ?><br/>
                          <span class="stitre"> par <?php echo ''.$b['auteur'].'' ?></span></a></li>
                      </ul>    <?php } ?> </li></ul> <?php } ?>
                   
                 
                </li> <?php }
}

?>
  </ul>
</div>

Ce code fonctionne  et m'affiche bien les $types comme parents et les $lieux comme enfants. smile

Par contre si j'ai plusieurs vidéo pour un même lieu, au lieu de les grouper ( group by lieu), il affiche plusieurs fois le "lieu" enfant.
Quand je tente un "GROUP BY lieu" il ne m'en affiche plus que le premier résultat.

J'ai du rater une boucle  ou autre  sad
voir ici

#7 Re : Forum Général PHP » tri pour affichage de requete sql » 05-07-2011 08:04:22

Mais quelle quiche !
Je n'en peux plus de ce code, je suis dessus depuis 3 jours et du coup, j'ai le cerveau en bouillie.
Un grand merci Pierrot.
Bonne soirée.

#8 Re : Forum Général PHP » tri pour affichage de requete sql » 05-07-2011 08:04:22

Pierrot a écrit :

$type=addslaches($type)
$ou=addslaches($ou)
$query_video = "SELECT id,type,titre,auteur FROM videos WHERE videos.type='$typ' AND videos.lieu='$ou'";
 

et le problème est reglé. wink

a++

toujours pas

$parent=$row_parents['nom'];
$enfant=$row_enfants['nom'];
  $typ=addslaches($parent);
    $ou=addslaches($enfant);
Call to undefined function addslaches()

#9 Re : Forum Général PHP » tri pour affichage de requete sql » 05-07-2011 08:04:22

<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}
$num=0;


mysql_select_db($database_dbprotect, $dbprotect);
$query_parents = "SELECT * FROM menus WHERE menus.niveau=0";
$parents = mysql_query($query_parents, $dbprotect) or die(mysql_error());
$row_parents = mysql_fetch_assoc($parents);
$totalRows_parents = mysql_num_rows($parents);

mysql_select_db($database_dbprotect, $dbprotect);
$query_enfants = "SELECT * FROM menus WHERE menus.niveau=1";
$enfants = mysql_query($query_enfants, $dbprotect) or die(mysql_error());
$row_enfants = mysql_fetch_assoc($enfants);
$totalRows_enfants = mysql_num_rows($enfants);

$typ= $row_parents['nom'];
$ou=$row_enfants['nom'];


mysql_select_db($database_dbprotect, $dbprotect);
$query_video = "SELECT id,type,titre,auteur FROM videos WHERE videos.type='$typ' AND videos.lieu='$ou'";

$video = mysql_query($query_video, $dbprotect) or die(mysql_error());
$row_video = mysql_fetch_assoc($video);
$totalRows_video = mysql_num_rows($video);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>Document sans titre</title>
 <link href="webtv/css/MooDropMenu.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="webtv/lib/mootools-1.2.5-core.js"></script>
  <script type="text/javascript" src="webtv/lib/MooDropMenu.js"></script>
    <script type="text/javascript" src="webtv/lib/setvideoListe.js"></script>
    <script type="text/javascript" src="webtv/lib/setvideo.js"></script>
    <style type="text/css">
    html {
      height:100%;
      background:#000 url(images/bg1.jpg) right bottom no-repeat;
      color:#FFF;
    }
    </style>
</head>

<body>
  <div id="logo"><a href="http://www.section-paloise.com" target="_blank"><img src="images/logo_vert.png" border="0" /></a></div>

<div id="menu_section">
<ul id="nav">
               <?php do { ?>
                 <li><a href="#"><?php echo $row_parents['nom']; ?></a>
                 <?php } while ($row_parents = mysql_fetch_assoc($parents)); ?>
<ul>
                 <?php do { ?>
                   <li> <a href="#<?php echo $row_enfants['nom']; ?>" onClick="setVideoListe('<?php echo $row_enfants['nom']; ?>', '<?php echo $num++; ?>')"><?php echo $row_enfants['nom']; ?></a>
                     <?php } while ($row_enfants = mysql_fetch_assoc($enfants)); ?>
                 <ul>
                    <?php if (($row_video['type']= $typ)&&($row_video['lieu']=$ou)) { ?>
                   <li>a href="#<?php echo $row_enfants['nom']; ?>" onClick="setVideoListe('<?php echo $row_enfants['nom']; ?>', '<?php echo $num++; ?>')"><?php echo $num++; ?> - <?php echo $row_video['titre']; ?><br/>
                     <span class="stitre">par <?php echo $row_lieux['auteur']; ?>
                     <?php } ?>
                 </ul>
                 </li>
</ul>
               </li>
</ul>
</div>  
</body>
</html>
<?php
mysql_free_result($parents);

mysql_free_result($enfants);

mysql_free_result($video);
?>

#10 Re : Forum Général PHP » tri pour affichage de requete sql » 05-07-2011 08:04:22

Table vidéos :

id  int(11)       Non   Aucun   AUTO_INCREMENT  Affiche les valeurs distinctes  Modifier  Supprimer   Primaire  Unique  Index   Texte entier
  etat  int(11)       Non   Aucun     Affiche les valeurs distinctes  Modifier  Supprimer   Primaire  Unique  Index   Texte entier
  type  varchar(255)  latin1_swedish_ci     Non   Aucun     Affiche les valeurs distinctes  Modifier  Supprimer   Primaire  Unique  Index   Texte entier
  titre   varchar(255)  latin1_swedish_ci     Non   Aucun     Affiche les valeurs distinctes  Modifier  Supprimer   Primaire  Unique  Index   Texte entier
  date  varchar(255)  latin1_swedish_ci     Non   Aucun     Affiche les valeurs distinctes  Modifier  Supprimer   Primaire  Unique  Index   Texte entier
  lieu  varchar(255)  latin1_swedish_ci     Non   Aucun     Affiche les valeurs distinctes  Modifier  Supprimer   Primaire  Unique  Index   Texte entier
  nom   varchar(255)  latin1_swedish_ci     Non   Aucun     Affiche les valeurs distinctes  Modifier  Supprimer   Primaire  Unique  Index   Texte entier
  description   varchar(255)  latin1_swedish_ci     Non   Aucun     Affiche les valeurs distinctes  Modifier  Supprimer   Primaire  Unique  Index   Texte entier
  auteur  varchar(255)  latin1_swedish_ci     Non   Aucun     Affiche les valeurs distinctes  Modifier  Supprimer   Primaire  Unique  Index   Texte entier

Table menus

  id  int(11)       Non   Aucun   AUTO_INCREMENT  Affiche les valeurs distinctes  Modifier  Supprimer   Primaire  Unique  Index   Texte entier
  nom   varchar(255)  latin1_swedish_ci     Non   Aucun     Affiche les valeurs distinctes  Modifier  Supprimer   Primaire  Unique  Index   Texte entier
  niveau  varchar(255)  latin1_swedish_ci     Non   Aucun     Affiche les valeurs distinctes  Modifier  Supprimer   Primaire  Unique  Index   Texte entier
  etat  varchar(255)  latin1_swedish_ci     Non   Aucun     Affiche les valeurs distinctes  Modifier  Supprimer   Primaire  Unique  Index   Texte entier
$query_video = "SELECT id,type,titre,auteur FROM videos WHERE videos.type='$typ' AND videos.lieu='$ou'";

me donne toujours

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 'd'avant match AND videos.lieu=Colomiers' at line 1

Je  ne comprends plus rien.

#11 Re : Forum Général PHP » tri pour affichage de requete sql » 05-07-2011 08:04:22

J'ai tnté une nouvelle approche avec  une table menu.

mysql_select_db($database_dbprotect, $dbprotect);
$query_parents = "SELECT * FROM menus WHERE menus.niveau=0";
$parents = mysql_query($query_parents, $dbprotect) or die(mysql_error());
$row_parents = mysql_fetch_assoc($parents);
$totalRows_parents = mysql_num_rows($parents);

mysql_select_db($database_dbprotect, $dbprotect);
$query_enfants = "SELECT * FROM menus WHERE menus.niveau=1";
$enfants = mysql_query($query_enfants, $dbprotect) or die(mysql_error());
$row_enfants = mysql_fetch_assoc($enfants);
$totalRows_enfants = mysql_num_rows($enfants);

$typ= $row_parents['nom'];
$ou=$row_enfants['nom'];

mysql_select_db($database_dbprotect, $dbprotect);
$query_video = "SELECT * FROM videos WHERE videos.type=$typ AND videos.lieu=$ou";
$video = mysql_query($query_video, $dbprotect) or die(mysql_error());
$row_video = mysql_fetch_assoc($video);
$totalRows_video = mysql_num_rows($video);

Ce qui me donne :

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 'avant match AND videos.lieu=Colomiers' at line 1

je essayé diverses syntaxes (type=".$type." , type='$type' type='.$type.') sans succès
Bouh Bouh bouh

#14 Re : Forum Général PHP » tri pour affichage de requete sql » 05-07-2011 08:04:22

Ben non, je n'obtiens pas ce que je veux, snif
Je suis supposée avoir :
menus parents : type1          type2            type3     ...
Sous menus :    lieu1            lieu1             lieu1
        ssmenus   video1          video1          video1
                        video2          video2          video2
                        video3...       video3...       video3...

Sous menus :    lieu2            lieu2             lieu2
        ssmenus   video1          video1          video1
                        video2          video2          video2
                        video3...       video3...       video3...
Sous menus :    lieu3             lieu3             lieu3
        ssmenus   video1          video1          video1
                        video2          video2          video2
                        video3...       video3...       video3...

#15 Re : Forum Général PHP » tri pour affichage de requete sql » 05-07-2011 08:04:22

coucou Maljuna Kris, Pierrot,
Ca faisait longtemps smile,
merci de vos réponses,
j'ai tenté ORDER by type, mais sans plus de succès que ça neutral.

En fait, le résultat escompté serait le même que plusieurs requêtes

$query_videos = "SELECT * FROM videos";

avec pour les menus : WHERE video.type= $type
                              sous menu : WHERE video.type=$type AND video.lieu=$lieu

Je pensais qu'il existait une façon de le faire sans multiplier les requêtes.
Peut on mettre les résultat de la requête simple dans un array et trier par $type[$i] et $lieu [$i] ?

#16 Forum Général PHP » tri pour affichage de requete sql » 05-07-2011 08:04:22

allhambra
Réponses : 23

Bonjour les codeurs,

Je suis supposée faire un menu avec les champs d'une table sql.
Table video => id     etat     type     titre     date     lieu     nom     description     auteur

menu => champ type
               sous menu=> champ lieu
                                     ssous menu=>les vidéos

Chaque menu est restrictif ex: sous menu lieu ne s'affiche que s'il à des vidéo dont le type est $type et le lieu $lieu.

Pour l'instant,  j'arrive a afficher des résultats mais ils ne sont pas triés.

mysql_select_db($database_dbprotect, $dbprotect);
$query_videos = "SELECT * FROM videos";
$videos = mysql_query($query_videos, $dbprotect) or die(mysql_error());
$row_videos = mysql_fetch_assoc($videos);
$totalRows_videos = mysql_num_rows($videos);

<div id="menu_section">
       <?php do { ?>
         <li><a href="#"><?php echo $row_videos['type']; ?></a>
           <ul>
             <li>
             
             <a href="#<?php echo $row_videos['lieu']; ?>" onClick="setVideoListe('<?php echo $row_videos['lieu']; ?>', '1')"><?php echo $row_videos['lieu']; ?></a>
               <ul>
                 <li><a href="#<?php echo $row_videos['lieu']; ?>" onClick="setVideoListe('<?php echo $row_videos['lieu']; ?>', '1')">1 - <?php echo $row_videos['titre']; ?><br/><span class="stitre">par <?php echo $row_videos['auteur']; ?></span></a></li>
  </ul></li></ul></li>
         <?php } while ($row_videos = mysql_fetch_assoc($videos)); ?>
</div>

qui donne :

Interviews d'avant match

    Aix
        1 - test maj
        par André Hough - Demi d'ouverture

Interviews d'après match

    Tarbes
        1 - test 5
        par Thierry Cléda - Directeur sportif

Résumés des matchs

    Paris
        1 - titre qui apparaitra sur le site
        par Thierry Cléda - Directeur sportif

Les partenaires de la Section

    Pau
        1 - appareils
        par Thierry Cléda - Directeur sportif

Interviews d'après match

    Mont de Marsan
        1 - mama à tord
        par Thierry Cléda - Directeur sportif

Comment faire pour que toutes les vidéo de type "Interviews d'après match" soient les une sous les autres ??

Tout conseils est bienvenu, merci

#17 MySQL, PostgreSQL, etc... » insert sql + chemin image » 21-05-2011 11:00:32

allhambra
Réponses : 0

Bonjour à tous,

j'ai un soucis sur un formulaire d'insertion sql.
Je travail en local avec Mamp

Je n'y arrivais pas toute seule donc je l'ai réalisé avec les comportements  serveur de dreamweaver cs5.
Le soucis est la récupération de la variable $nomFichier.
Mon

<input type="hidden" name="image" value="<?php echo $nomFichier; ?>" />

me retourne le message d'erreur "Column 'image' cannot be null"

le traitement  :

<?php

$chemin = "../images/actu/" ;
     
    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))
    echo("<br>l'upload 1 a réussi") ;
  else
    echo("<br>l'upload de la photo 1 a échoué") ;
}//fin if
else
{
  echo("Vous n'avez pas choisit de fichier!!") ;
}//fin else
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form")) {
  $insertSQL = sprintf("INSERT INTO actualites (titre, texte, image) VALUES (%s, %s, %s)",
                       GetSQLValueString($_POST['titre'], "text"),
                       GetSQLValueString($_POST['texte'], "text"),
                       GetSQLValueString($_POST['img'], "text"));

  mysql_select_db($database_jeu, $jeu);
  $Result1 = mysql_query($insertSQL, $jeu) or die(mysql_error());

  $insertGoTo = "actualite.php?erreur=ok";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}
?>

......

le formulaire

<?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "ok")) { // Affiche l'erreur  ?>
      <span class="txterror">Votre actualité a été ajoutée</span>    <?php } ?>
      <?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "upok")) { // Affiche l'erreur  ?>
      <span class="txterror">Votre image a été uploadée</span>    <?php } ?>
      <?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "upko")) { // Affiche l'erreur  ?>
      <span class="txterror">Votre image n'a pas été uploadée</span>    <?php } ?>
      <?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "fichier")) { // Affiche l'erreur  ?>
      <span class="txterror">Votre n'avez pas choisi de fichier</span>    <?php } ?>

<form action="<?php echo $editFormAction; ?>" name="form" enctype="multipart/form-data" method="POST" >
<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
<input type="hidden" name="image" value="<?php echo $nomFichier; ?>" />


 <table width="60%" border="0" cellspacing="0" cellpadding="0" align="center">
  <tr>
    <td colspan="2">Les champs marqués * sont obligatoires</td>
    </tr>
  <tr>
    <td>Titre *</td>
    <td><div class="champ"><input name="titre" type="text" /></div></td>
  </tr>
  <tr>
    <td>Contenu *</td>
    <td><div class="champ"><textarea name="texte" cols="50" rows="10"></textarea></div></td>
  </tr>
<tr>
    <td>Image</td>
    <td><input type="file" name="photo1">  </td>
  </tr>
  <tr>
    <td colspan="2" align="center"><input name="Envoyer" type="submit" class="bt" value="Ajouter l'actualité" /></td></tr>
</table>
<input type="hidden" name="MM_insert" value="form" />
</form>

sinon au départ le fichier de traitement "add-actu.php" ressemblait à ça mais il me retourne une page blanche

<?php
    $titre = $_POST['titre'];
    $texte = $_POST['texte'];
    $creation=now()
      //chemin qui mène au dossier qui va contenir les fichiers uplaod:
  $chemin = "../images/actu/" ;
     
    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))
    echo("<br>l'upload 1 a réussi") ;
  else
    echo("<br>l'upload de la photo 1 a échoué") ;
}//fin if
else
{
  echo("Vous n'avez pas choisit de fichier!!") ;
  echo("<a href=\"./actualite.php\">Retour</a><br>") ;
}//fin else
if(empty($titre) OR empty($texte))
    {
    echo '<font color="red">Attention, tous les champs * doivent être remplis !</font>';
    }
 
// Aucun champ n'est vide, on peut enregistrer dans la table
else    
    {
$sql = "INSERT INTO actualites (id,titre,texte,image,creation) VALUES ('','$titre','$texte', '$nomFichier', ''))";
     
       mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

 // on affiche le résultat pour le visiteur
    echo '<b>Votre actu a été ajoutée.</b>';
 

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

un œil avisé serait bienvenu pour résoudre ce problème

#18 MySQL, PostgreSQL, etc... » resultat sql dans 2 tableaux » 06-01-2011 13:19:29

allhambra
Réponses : 2

bonjour à tous !
Est il possible d'isoler le premier résultat d'une requête mais en gardant les résultats suivants.
J'ai une page index, avec par défaut le dernier résultat de ma requête chargé dans le player, et les dix derniers résultats dans la partie de droite.
Pour l'instant, j'ai deux fois la requête, une en LIMIT 0,1 l'autre en 0,10.
1- est il possible de ne faire qu'une requête ??
2-  je voudrais aussi que lorsque je clic sur un élément à droite, il se charge dans le player sur la même page.
Je me demande donc comment conditionner l'affichage par "défaut" et "au clic"
Je m'explique : je souhaiterai afficher mes résultats comme suit : 
[code+PHP]<?php mt_srand((float) microtime()*1000000);

$r= mt_rand(0, 100);

$query = "SELECT * FROM listes WHERE `theme` LIKE '%actualite%' ORDER BY `id` DESC LIMIT 0, 1";
$result=mysql_query($query) or die('Erreur SQL !'.$sql.''.mysql_error());
$num = mysql_num_rows($result);
if (!$result){print "Pas d'enregistrements trouvés";exit;}

while ($row = mysql_fetch_array($result)) {
$nom=$row["nom"];
?>
<link href="/television-locale-pau/template/bulle/css/style.css" rel="stylesheet" type="text/css" media="screen">
<body>
<!-- Header -->
<div id="header">
<div id="log"><div align="left"><img src="template/bulle/logo iciTELE100x100.jpg" width="76" height="76" /></div><!-- Logo --></div>
    <div class="shell">
       
        <h1 id="logo"><a href="#">ici-tele<span>la télévision locale de Pau</span></a></h1>
        <!-- /Logo -->
       
      <div class="header-right">
            <!-- Search -->
            <div id="search">
          <form method="POST" action="resultat.php">
                    <input type="text" value="Recherchez ..." class="field" />
                    <input type="submit" value="submit" class="submit" />
                </form>
            </div>
            <!-- /Search -->
           
            <!-- Socials -->
            <div class="socials">
              <a href="http://twitter.com/ici_tele" class="link-twitter">Twitter</a>
              <a href="http://www.youtube.com/user/icitele" class="link-linkedin">Youtube</a>
              <a href="http://www.facebook.com/icitele.pau" class="link-facebook">Facebook</a>
              <a href="http://feeds.feedburner.com/IciTelePau-LePodcast" class="link-flickr">Podcast</a>
            </div>
            <!-- /Socials -->
      </div>
    </div>
</div>
<!-- /Header -->

<?php include("includes/menu.php");?>
<?php mt_srand((float) microtime()*1000000);

$r= mt_rand(0, 100);

$query = "SELECT * FROM video WHERE `id_mot` LIKE '%actualites%' ORDER BY `id` DESC LIMIT 1,10";
$result=mysql_query($query) or die('Erreur SQL !'.$sql.''.mysql_error());
$num = mysql_num_rows($result);
if (!$result){print "Pas d'enregistrements trouvés";exit;}

while ($row = mysql_fetch_array($result)) {
$nom=$row["nom"];
$dest_file="/video/";
    $dest_page="/video.php?";
    $ext1="flv";
    $ext2="jpg";
    $ext3="f4v";
    $ext4="m2t";
    $ext5="mp4";
    $URL_site="http://127.0.0.1:8888/television-locale-pau";
/* enlve un "\"  */
//$nom = "$row['nom']";
$nom = stripslashes($row["nom"]);
$title = stripslashes($row["title"]);
$description= stripslashes($row["description"]);
//$publication= stripslashes($row["publication"]);
$publication = ($row['publication']);
//$producteur= stripslashes($row["organisateur"]);
$id_mot= stripslashes($row["id_mot"]);
//$alias = stripslashes($row["alias"]);
$auteur =stripslashes($row["auteur"]);
$desc_longue = stripslashes($row["desc_longue"]);
//echo $nom;
//$nom sad$row["nom"]);
    $source_file=("$nom");
    $link = ("$URL_site$dest_page$nom");
    $flv = ("$URL_site$dest_file$source_file.$ext1");
    $f4v = ("$URL_site$dest_file$source_file.$ext3");
    $m2t = ("$URL_site$dest_file$source_file.$ext4");
    $mp4 = ("$URL_site$dest_file$source_file.$ext5");
    $mediathumbnail = ("$URL_site$dest_file$source_file.$ext2");
//$file= fopen("xml/$nom.xml", "r");
$datefr =changedateusfr($row['publication']);

setlocale (LC_TIME, 'fr_FR');
$dateFormat = "2010-04-20";
$date = strftime("%A %d %B %Y",strtotime("$publication"));
?>
<!-- Intro -->
<div id="intro">
    <div class="shell">
    <div class="single-slider">
    <table width="70%" align="left" cellpadding="2" cellspacing="4">
  <tr>
    <td width="70%" align="center"><h1><?php echo ''.stripslashes($row['title']).''; ?></h1></td>
   
  </tr>
  <tr>
    <td valign="top">    <script type="text/javascript" src="jwplayer/jwplayer.js"></script>

   
    <div id="container">Chargement du player ...</video>

<script type="text/javascript">
    jwplayer("container").setup({
        autostart: true,
        controlbar: "over",
        duration: 15,
        stretching: "fill",
        file: "video/<?php echo $nom ?>.mp4",
        flashplayer: "jwplayer/player.swf",
        image: "video/<?php echo $nom ?>.jpg",
        plugins: {
            hd: { file: "video/<?php echo $nom ?>.f4v", fullscreen: true },
            gapro: { accountid: "UA-17335929-1" },
            adtvideo:{config: '<?php echo $URL_site ?>/adsvideo_config.xml'},
        },
        volume: 80,
        width: 900,
        height: 550,

                events: {
            onComplete: function() {
                document.getElementById("status").innerHTML = "That's all folks!";
            }
                        }

    });
</script>
</div></td>
    </tr>
  <tr>
    <td align="center"><p><?php echo ''.stripslashes($row['desc_longue']).''; ?></p></td>
    </tr>
</table>
<div class="video">     <?php
$sql="SELECT * from video WHERE `id_mot` LIKE '%actualites%' AND etat='on' ORDER BY id DESC LIMIT 0, 10";   //on prépare la requête SQL.


$result=mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
if($result)
        {
        if(mysql_num_rows($result)==0)
        $msg="<h1><center><b>Pas de Résultat</b></center></h1>";
        else
                {
               $date = date ( "Y:m:d" ) ;

             
?>
<br />
<?php  //include("tagsphere.php");?><br />
<?php     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']);
$etat = ($row['etat']);
$publication = ($row['publication']);
$description= ($row["description"]);
$desc_longue = ($row["desc_longue"]);
    $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");
$datefr =changedateusfr($row['publication']);

setlocale (LC_TIME, 'fr_FR');
$dateFormat = "2010-04-20";
$date = strftime("%A %d %B %Y",strtotime("$publication")); ?>
    <table width="100%" border="0" align="left" cellpadding="2" cellspacing="2">
   
      <tr>
     
        <td width="125" align="left">
     
        <a href="video.php?nom=<?php echo $row['nom']; ?>">
        <img src="<?php echo $mediathumbnail ?>" align="left"  vspace="0" width="120px" alt="<?php echo ''.stripslashes($row['title']).''; ?>" /></a></td>
        <td width="775" colspan="4" valign="top"><a href="video.php?nom=<?php echo $row['nom']; ?>"><h3><?php echo ''.stripslashes($row['title']).''; ?></h3></a>
       <p><?php echo $description ?><br /></p></td>
      </tr>
   
</table>
<?php                       
                        }
     
                }
        }
        ?></div>[/code]
Je vous remercie de votre aide et vous souhaite une année 2011 pleine de joie, de pepettes et de code  wink

#19 Re : Forum Général PHP » probleme de lien php » 31-12-2010 10:58:47

Coucou les codeurs
mon problème est résolu !!
en bdd mes url sont de type www.monsite.com, j'ai donc rajouté le http:// en dur dans ma page wink

 echo '<h1>Retrouvez tous les biens de cette agence sur <a href="http://'. $row['url_part'].' ">'.$row['url_part'].'</a></h1><br /><br />';

Merci de votre aide et Bonne année 2011, je vous souhaite prospérité, santé, amour et  codes fructueux big_smile

#20 Re : Forum Général PHP » probleme de lien php » 31-12-2010 10:58:47

désolée, toujours pas!
peut il y avoir un lien avec l'option liens relatifs de dreamweaver ???

#21 Re : Forum Général PHP » probleme de lien php » 31-12-2010 10:58:47

salut Pierrot, merci pour ta prompte réponse
toujours fidèle au poste wink
J'ai testé, mais sans succès sad

#22 Forum Général PHP » probleme de lien php » 31-12-2010 10:58:47

allhambra
Réponses : 5

Bonjour à tous et bonnes fêtes de fin d'année wink

J'ai un petit problème avec un lien partenaire.

en bdd tout est bon, c'est juste à l'affichage où j'ai l'url de mon site avant l'url du partenaire.
ex: http://www.monsite.com/www.url-partenaire.fr
j'avoue ne pas tout comprendre neutral

<?php
$query="SELECT * FROM partenaires WHERE nom_part='$row[partenaire]'";

$result1 = mysql_query($query) or die ('Erreur : '.mysql_error() );

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

if($total1) {
 while($row = mysql_fetch_array($result1)) {


if (empty($row[url_part])) { echo'Pour plus d\'informations sur ce bien contactez  '.$row['nom_part'].' au  '.$row['tel_part'].'';

 } else { echo '<p>Retrouvez tous les biens de cette agence sur <a href="'. $row['url_part'].' ">'.$row['url_part'].'</a>';

}}?>

Si vous avez une idée lumineuse, je prends,
Merci

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

hmm quelle quiche !!!

merci beaucoup maljuna wink
merci à tous de votre aide ! smile

[résolu]

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

j'ai des news wink

mon mail est correctement envoyé lorsque je :
1- commente la requête d'insertion SQL sur "sujets" et l'interrogation sur "sujets" (effectivement la deuxième ne sert à rien puisque je peux recuperer la valeur des _POST.).

par contre j'ai une erreur

Warning: Invalid argument supplied for foreach() in ajout.php on line 115

concernant ma boucle mots clé

par contre comment puis-je incrémenter ma table "sujets" ??

mysql_query("INSERT INTO video VALUES ('','$title','$nom', '$youtubelink', '$dailylink','$contenu','$description','$desc_longue','$publication','$etat', '$listenom', '$producteur', '$auteur', '$priorite')") or die ('Erreur : '.mysql_error());
 

 $req = "INSERT INTO sujets(id, nom_sujet, contact, tel, mail, url,adresse) VALUES('','$nom_sujet','$contact', '$tel', '$mail_sujet','$contenu','$url','$adresse')";
   
     //on insère les informations du formulaire dans la table
    mysql_query($req) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

Me retourne

Warning: Invalid argument supplied for foreach() in ajout.php on line 115
Erreur SQL !
Column count doesn't match value count at row 1

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

je me demande s'il n'y à pas plus simple !

j'ai un formulaire d'ajout de vidéos (addvideo.php), qui est traité par ajout.php jusque là tout va bien !
Lorsqu'une vidéo est ajoutée et que l'insert sql est ok, j'aimerais que :
1-  si la case prévenir le producteur est cochée, on lui envoie un mail
2- Si le champ mail sujet est rempli, on lui envoie un mail.

j'ai donc mis le code sur la page ajout.php.

<?php
include("includes/config.inc.php3");
include("includes/session.inc.php3");
include("includes/header.inc.php3");

if($action == "producteur" && $auth[2] == 1)
  {
    $sql6 = "SELECT * from producteurs, video WHERE nom_producteur='$producteur' AND id='$id'";
$result6 = mysql_query($sql6) or die ('Erreur : '.mysql_error() );
$row=MYSQL_FETCH_ARRAY($result6);

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

$destinataire = "".($row[mail_producteur])."";
$expediteur   = "redaction@ici-tele.com";
$reponse      = $expediteur;

echo "Ce script envoie un mail au format HTML à $destinataire";
$codehtml=
  "<html><body>" .
  "<h1>Bonjour ".$contact."</h1>".
  "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>." .
  "</body></html>";
mail($destinataire,
     "Email au format HTML",
     $codehtml,
     "From: $expediteur\r\n".
        "Reply-To: $reponse\r\n".
        "Content-Type: text/html; charset=\"iso-8859-1\"\r\n");
     }
 
// On commence par récupérer les champs

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

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

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

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

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

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


if(!empty($_POST['mail_prod'])){
   $mail_prod=$_POST['mail_prod'];
   $action="producteur";}
else
{$mail_prod="off";
}

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


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

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

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

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

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

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

$monthes = array('', 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet',
                              'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');
   $days = array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
$publication=date("r",time());

//if(isset($_POST['publication']))      $publication=$_POST['publication'];
//else      $publication="";


if(!empty($_POST['case'])){
   $etat=$_POST['case'];}
else
{$etat="";
}


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

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

if(!empty($_POST['priorite'])){
   $priorite=$_POST['priorite'];}
else
{$priorite="";
}
// 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($id_mot as $cle => $row){
  //echo $cle;
  //echo count ($nom_mot);
$n = count($id_mot)-1;
if($cle == $n){
     
 $listenom .= $row;
}else {
$listenom .= $row.",";
}
}

 
 
 
  // foreach ($nom_mot as $cle => $val)
//        {
//                echo $val.'<br>';
//        $listenom.=$val.",";
//        }
//}
// On vérifie si les champs sont vides OR empty($publication)
if(empty($title) OR empty($nom) OR empty($contenu) OR empty($etat) OR empty($auteur))
    {
    echo '<font color="red">Attention, tous les champs doivent être remplis !</font>';
    }
 
// Aucun champ n'est vide, on peut enregistrer dans la table
else    
    {
    // on écrit la requête sql $publication
  mysql_query("INSERT INTO video VALUES ('','$title','$nom', '$youtubelink', '$dailylink','$contenu','$description','$desc_longue','$publication','$etat', '$listenom', '$producteur', '$auteur', '$priorite')") or die ('Erreur : '.mysql_error());
 

 $req = "INSERT INTO sujets(id, nom_sujet, contact, tel, mail, url,adresse) VALUES('','$nom_sujet','$contact', '$tel', '$mail','$contenu','$url','$adresse')";
   
     //on insère les informations du formulaire dans la table
    mysql_query($req) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

 $req2 ="SELECT *
  FROM sujets  
  WHERE nom_sujet ='$nom_sujet'"
;
  $result2 = mysql_query($req2) or die(mysql_error());
while($row = mysql_fetch_array($result2))
{
$mail = $row['mail'];
$contact = $row['contact'];
echo '<p><br/><br/></p>';

//destinataire :

$to=$mail;

// 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 sur ';
      echo $mail;
      echo'</div>';
    }
     else
     {
          echo '<div align=\"center\">Le message n\'a pu être envoyé</div>';
     }

   
   ?>
          </div></td>
      </tr>
      <tr>
      <tr>
        <td colspan="2"><div align="center">
            <h1>Récapitulatif</h1>
          </div></td>
      </tr>
      <tr>
        <td>Titre</td>
        <td><input name="title" type="text" id="title" value="<? echo$title?>"></td>
      </tr>
      <tr>
        <td>Nom du fichier</td>
        <td><input name="nom" type="text" id="nom" value="<? echo$nom?>"></td>
      </tr>
      <tr>
        <td>Lien Youtube</td>
        <td><input name="youtubelink" type="text" id="youtubelink" value="<? echo$youtubelink?>"></td>
      </tr>
      <tr>
        <td>Line Daily motion</td>
        <td><input name="dailylink" type="text" id="dailylink" value="<? echo$dailylink?>"></td>
      </tr>
      <tr>
        <td>Type de contenu</td>
        <td><select name="contenu" size="1" id="contenu">
            <option selected><?echo$contenu?></option>
          </select></td>
      </tr>
      <tr>
        <td>Description</td>
        <td><textarea name="description" id="description" cols="45" rows="5"><? echo$description?></textarea></td>
      </tr>
      <tr>
        <td width="24%">Date de publication</td>
        <td width="76%"><input  name="publication" type="text" id="publication" value="<? echo$publication?>" size="60"></td>
      </tr>
     
      <tr>
        <td>Etat</td>
        <td><?php  if(!empty($case)){
echo"<input name=\"case\" type=\"checkbox\" value=\"$case\" checked=\"checked\" />";}
else
{echo"<input name=\"case\" type=\"checkbox\" value=\"$case\" />";
} ?></td>
      </tr>
      <tr>
        <td>Mots cl&eacute</td>
        <td>
            <input   name="id_mots" type="text" id="id_mots" value="<? echo $listenom;?>" size="60" />
          </td>
      </tr>
      <tr>
        <td>Producteur</td>
        <td><p>
            <input   name="organisateur" type="text" id="organisateur" value="<? echo $organisateur?>" size="60" />
          </p></td>
      </tr>
      <tr>
        <td>Auteur</td>
        <td> <input   name="auteur" type="text" id="auteur" value="<? echo $auteur?>" size="60" /></td>
      </tr>
    </table>
  </form>
 <table width="498" height="32"  border="0" cellpadding="0" cellspacing="5">
  <tr><td> <?php
}
}?>
</td></tr></table>
  </font>
  </p>
</div>
<?php

include("includes/footer.inc.php3");
?>

est il possible de traiter l'envoie des mails par une redirection ???
car du coup, ça donne une page assez lourde et brouillon sad

Pied de page des forums

Propulsé par FluxBB