probleme count et mysql_fetch_row(

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme count et mysql_fetch_row(

Re: probleme count et mysql_fetch_row(

par epommate2 » 18 déc. 2010, 10:26

Ok, en fait, il existe plusieurs bibliothèques pour accéder à MySQL :

- l'extention MySQL : http://www.php.net/manual/fr/book.mysql.php
- l'extention MySQLi : http://www.php.net/manual/fr/book.mysqli.php
- l'extention PDO : http://www.php.net/manual/fr/book.pdo.php

Tu dois choisir une de ces extensions et t'y tenir. Je te conseille de commencer par MySQL qui est plus simple et te fera saisir
la philosophie du truc, même si dans la vrai vie, c'est plutôt PDO qui est utilisé.

Re: probleme count et mysql_fetch_row(

par yadutonus » 18 déc. 2010, 10:02

C'est un script que j'ai essayé d'adapter je débute. Merci de m'eclairer .

Re: probleme count et mysql_fetch_row(

par epommate2 » 18 déc. 2010, 08:36

Je rêve ou tu mélange PDO et mysql ?

Re: probleme count et mysql_fetch_row(

par ya du tonus » 17 déc. 2010, 18:28

j'ai bien mis
ini_set('mysql.trace_mode', true);
au début de la page mais aucun message n'apparaît.

impossible de comprendre pour quoi la variable result_id n'est pas le bon argument pour mysql_fetch_row()

je vous donne une grande partie du code. avec la fonction de moteur de rercherche
<?php function requete($table, $champs, $select, $order, $sens, $limit_start, $limit_nb, $count = '')
   {
   // option de recherche
	   $option = $_GET['option'];
	   // texte de recherche
	   $search = $_GET['search'];
  
   // si c'est le premier appel de la fonction
   if(!isset($fonction_requete))
   {
   static $fonction_requete = 1;
  
   // si "Rechercher tous les mots" ou "Rechercher un de ces mots"
   if($option == 'all' || $option == 'one')
   {
   // liste des mots
   $mots = explode(' ', $search);
  
   // sépararateur
   if($option == 'all')
   $sep = ' AND ';
   else
   $sep = ' OR ';
   } // if($option == 'all' || $option == 'one')
   // "Rechercher l'expression exacte"
   else
   {
   $mots = $search;
   $sep = '';
   }
   } // if(!isset($fonction_requete))
  
   if(!is_array($champs))
   $champs = array($champs);
  
   if($option == 'all' || $option == 'one')
   {
   // pour savoir si on en est à la première itération ou non
   $i = 0;
  
   // pour tous les mots
   foreach($mots as $mot)
   {
   if(!$i)
   {
   $search = '~  ^!|!^  ~ LIKE \'%' . $mot . '%\'';
   $i = 1;
   }
   else
   $search .= $sep . '~  ^!|!^  ~ LIKE \'%' . $mot . '%\'';
   } // foreach($mots as $mot)
   } // if($option == 'all' || $option == 'one')
   else if($option == 'sentence')
   $search = '~  ^!|!^  ~ LIKE \'%' . $mots . '%\'';
  
   $i = 0;
  
   // début de requête
   if(empty($count))
   $req_search = 'SELECT ' . $select . ' FROM ' . $table . ' WHERE ';
   else
   $req_search = 'SELECT count(' . $count . ') FROM ' . $table . ' WHERE ';
  
   // ajout des champs
   foreach($champs as $champ)
   {
   if(!$i)
   {
   $req_search .= '( ' . str_replace('~  ^!|!^  ~', $champ, $search) .' ) ';
   $i = 1;
   }
   else
   $req_search .= 'OR ( ' . str_replace('~  ^!|!^  ~', $champ, $search) .' ) ';
   }
  
   if(empty($count))
   $req_search .= "ORDER BY $order $sens LIMIT $limit_start, $limit_nb";
  
   return $req_search;
   } 
   
   
  
   
  try
{
	// On se connecte à MySQL
	$bdd = new PDO('mysql:host=localhost;dbname=admin', 'xxx', 'xxx');
}
catch(Exception $e)
{
	// En cas d'erreur, on affiche un message et on arrête tout
        die('Erreur : '.$e->getMessage());
}






$table= 'stock' ;
$champs= array('ref','auteur','titre', 'description','commentaire','prix');
$select= 'ref, auteur, titre, description, commentaire, prix';

$order='ref';
$sens= 'DESC';

include ("fct_page.php");

# $count: paramètre optionnel: Si est vide ou non-passé, la requête est crée normaleme

//on rajoute ces infos avant sa requete
$d = $_GET['d'];
if(!isset($_GET['l'])) $_GET['l']=4; //pour avoir que 4 enregistrements par page par exemple
if(!isset($_GET['d'])) $_GET['d']=0;  //on affiche en premier l'enregistrement 0 (le premier) par défaut




$limit_start = $_GET['d'];
$limit_nb=$_GET['l'];

$requete = requete($table, $champs, $select, $order, $sens, $limit_start, $limit_nb); 
$result = $bdd->query($requete); 
   
   $requete_id = requete($table, $champs, $select, $order, $sens, $limit_start, $limit_nb,'*'); 
   
   $result_id = $bdd->query($requete_id); 
  
  
   
   
   
   
$row = mysql_fetch_row($result_id);
$total = $row[0];




   
   $barrenavig = gestion_pages($_GET['d'],$_GET['l'],$total,$search,$option);
   
   
   ?>

Re: probleme count et mysql_fetch_row(

par stealth35 » 17 déc. 2010, 12:00

hello, t'as une erreur dans ta requête, active le mysql.trace_mode
ini_set('mysql.trace_mode', true);

probleme count et mysql_fetch_row(

par yadutonus » 17 déc. 2010, 11:59

bonjour, j'essaie de faire le decompte de toutes les entrées d'une recherche dans ma BDD, pour utiliser une fonction d'affichage de changement de pages.

mon code permet de generer une requete mysql qui fonctionne lorsque je execute directement dans la console. et me donne le nombre d'entrées.

quand j'essaie de l'uliser dans mon code php j'ai une erreur :


Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /homepages/5/d267378681/htdocs/search.php on line 132
dans la ligne.
$row = mysql_fetch_row($result_id);
$total = $row[0];

Et je n'arrive pas a m'en sortir !!

Merci pour votre aide.