test de requete

x@v
Mammouth du PHP | 570 Messages

27 févr. 2007, 05:03

Bonjour,
j'aimerai envoyé un mail au webmaster en cas de requete vide, j'ai donc imaginé ce contrôle qui ne fonctionne pas, hic
je comprend pas ?
 function get_book($catid)
{
   // on sélectionne l'article
   if (!$catid || $catid=='')
     return false;

   include ("connexion.php");
    $query = "select * from books where catid='$catid'";
   $requete=mysql_query($query, $lien);  

  if(mysql_num_rows($requete)<0)
   {
   echo 'ddddddddd<br /><br />sdfsdfsdfsdffdsfdfdsfsdsdf';
   	   	mail("[email protected]", "Problème: fghg", "Aucune catégorie n'à été trouvégfghfghg");
		}
	
while($row= mysql_fetch_assoc($requete))
	{	
    //create a table row for each book    
       include ("connexion.php");
      $url = 'show_book.php?isbn='.($row['isbn']);
      //echo '<tr><td>';
	 echo '<div class="">';
      if (@file_exists('images/'.$row['photo']))
      {
        $title = '<img src="images/'.$row['photo'].'" height="100px" />';
        do_html_url($url, $title);
      }
      echo '</div>';
	 echo '<div class="">';
      $title =  $row['title'].' par '.$row['author'];
      do_html_url($url, $title);
      echo '</div>';
	}
 }
Merci
edit ->
j'ai oubliez de précisez
http://courant-alternatif.org/test_connexion/
que c'est une liste dont les catégorie sont suceptible d'être vide, c'est pour prévenir le futur gérant du site qu'il n'y a pas d'article dans ça catégorie.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

27 févr. 2007, 12:08

Salut,

Le résultat minimum de mysql_num_rows() est de zéro donc impossible d'avoir :
 if(mysql_num_rows($requete)<0)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

x@v
Mammouth du PHP | 570 Messages

27 févr. 2007, 15:30

sa fonctionne, mais j'ai fait une fonction
 // function pour tester si une requete contient un résultat et envoie un mail...
function test_requette($requete,$texte_mail,$objet_mail,$site) {
  if(!mysql_num_rows($requete)>0)
   { 
   $texte afficher ='<br />DNS == "'.$_SERVER['HTTP_HOST'].'" Page en question'.$_SERVER['REQUEST_URI'];
      
      echo $texte_mail;
	 $texte_mail+=$texte afficher;
      mail("[email protected]", "$objet_mail", "$texte_mail");
   }
}
sa marche plus

Code : Tout sélectionner

Parse error: syntax error, unexpected T_STRING in C:\apachefriends\xampp\htdocs\caddie\test_connexion\inc\output_fns.php on line 563
à cause de la;ligne :

Code : Tout sélectionner

$texte afficher ='<br />DNS == "'.$_SERVER['HTTP_HOST'].'" Page en question'.$_SERVER['REQUEST_URI'];
je comprend pas.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

27 févr. 2007, 15:38

Il s'agit bien de la ligne 563 ?
un souci aux alentours peut être

pas besoin de quillemets pour des variables seules :
mail("[email protected]", $objet_mail, $texte_mail);

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

x@v
Mammouth du PHP | 570 Messages

27 févr. 2007, 15:43

non il s'agit de cette ligne

Code : Tout sélectionner

$texte afficher ='<br />DNS == "'.$_SERVER['HTTP_HOST'].'" Page en question'.$_SERVER['REQUEST_URI'];
puis ::

Code : Tout sélectionner

$texte_mail+=$texte afficher;

x@v
Mammouth du PHP | 570 Messages

27 févr. 2007, 15:47

là aussi j'ai une erreur, j'avoue ne pas comprendre :

Code : Tout sélectionner

function test_requette($requete,$texte_mail,$texte afficher,$objet_mail) {
erreur :

Code : Tout sélectionner

Parse error: syntax error, unexpected T_STRING, expecting ')' in C:\apachefriends\xampp\htdocs\caddie\test_connexion\inc\output_fns.php on line 561
la fonction semble bien écrite (à mon niveau)
// function pour tester si une requete contient un résultat et envoie un mail...
function test_requette($requete,$texte_mail,$texte afficher,$objet_mail) 
{
  if(!mysql_num_rows($requete)>0)
   { 
   $texte afficher ='<br />DNS == "'.$_SERVER['HTTP_HOST'].'" Page en question'.$_SERVER['REQUEST_URI'];
      
      echo $texte_mail;
     $texte_mail+=$texte afficher;
      mail("[email protected]", $objet_mail, $texte_mail);
   }
}
puis je l'affiche ?
  $texte_afficher='Aucun article ne se trouve dans cette catégorie';
  $objet_mail='Problème: pour le site ';
  test_requette($requete,$texte_mail,$texte afficher,$objet_mail);

x@v
Mammouth du PHP | 570 Messages

27 févr. 2007, 16:21

en faite j'avais mis un espace à mon insu
// function pour tester si une requete contient un résultat et envoie un mail...
function test_req($requete ,$texte_afficher,$objet_mail) 
{
  if(!mysql_num_rows($requete)>0)
   { 
   $hote=$_SERVER['HTTP_HOST'];
     echo $objet_mail;   
   $texte ='Problème avec le Nom de domaine "'.$hote.' la page en question est :"'.$_SERVER['REQUEST_URI'].'"';

     $texte_afficher=$texte_afficher.' '.$texte;
	$objet_mail=$objet_mail;
	
      mail("[email protected]", $objet_mail, $texte_afficher);
   }
}
en retravaillant sa me donne une fonction sympas ?