Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1583 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Probleme de requete

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme de requete

n°1199720
bourin77
Posté le 14-09-2005 à 21:39:27  profilanswer
 

bonsoir à tous,
 
voila j'ai un petit probleme de requete pour faire une pagination, mon script de pagination fonctionne quand je selectionne toute mabase Msql(2 tables sponsor et photosponsor).  
 
Dans mon cas, chacun de mes sponsor ont leur photos avec l'identifiant de mon sponsor pour chaque photos. Sur ma page detail_sponsor, je veux afficher toutes les photos du sponsor séléctionné . Donc j'ai fait une variable pour récuperer la valeur de l'ID du sponsor avec $id = isset($_GET['VARsponsorID']) ? $_GET['VARsponsorID'] : die('Erreur');  .  
 
Et lorsuqe je fais dans ma requete avec la clause WHERE photosponsor.sponsor="'.$id .'"'; , je recois bien la premiere image du sponsor mais les autres liens vers les autres pages ne marche pas,
 
Est ce que ca vient de la requete ou ca vient de ma fonction pour effectuer ma pagination
 
Si kkun avait une petite idée, ce serai sympa
Merci et bonne soirée

mood
Publicité
Posté le 14-09-2005 à 21:39:27  profilanswer
 

n°1199726
sielfried
Posté le 14-09-2005 à 21:47:09  profilanswer
 

Fait voir ton code, sinon ça va être dur.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1199732
bourin77
Posté le 14-09-2005 à 21:52:33  profilanswer
 

$id = isset($_GET['VARsponsorID']) ? $_GET['VARsponsorID'] : die('Erreur');  
$select = 'SELECT count(identifiant) FROM photosponsor WHERE photosponsor.sponsor="'.$id .'"';
$result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );
$row = mysql_fetch_row($result);
$total = $row[0];
 
verifLimite= verifLimite($limite,$total,$nombre);
if(!$verifLimite)  {
    $limite = 0;
}
 
$select = 'select * FROM photosponsor,sponsor WHERE photosponsor.sponsor="'.$id .'" limit '.$limite.','.$nombre;
$result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );
 
if($total) {
 
    echo '<table align="center">'."\n";
   
    while($row = mysql_fetch_array($result)) {
        echo '<tr align="center">';
        echo '<td ><img src="'.$row['photosponsor'].'"</td>';
        echo '</tr>'."\n";
    }
    echo '</table>'."\n";
}
else echo 'Pas d\'enregistrements dans cette table...';
mysql_free_result($result);
 
if($total > $nombre) {
    // affichage des liens vers les pages
    affichePages($nombre,$page,$total);
}
 
 
Et g le fichier fonctions.php ou se trouve les liens 1.2.3..... a afficher

n°1199742
sielfried
Posté le 14-09-2005 à 21:58:46  profilanswer
 

Ben précise aussi un peu ton problème. :spamafote:
 

Citation :

les autres liens vers les autres pages ne marche pas


 
Ca veut dire quoi, ils ne marchent pas ? Et fait voir la fonction qui les affiche. Ou mieux, essaie de débugger un peu pour localiser un peu mieux le problème déjà...
 
Sinon on sait pas d'où sortent $nombrre, $limite etc.


Message édité par sielfried le 14-09-2005 à 21:59:02

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1199760
bourin77
Posté le 14-09-2005 à 22:17:20  profilanswer
 

<?php require_once('Connections/fulleyeMiseajour.php');  
require 'administration/fonctions.php';
$id = isset($_GET['VARsponsorID']) ? $_GET['VARsponsorID'] : die('Erreur');  
// on va afficher 5 résultats par page.
$nombre = 1;  
// si limite n'existe pas on l'initialise à zéro
if (!$limite) $limite = 0;  
// on cherche le nom de la page.    
$path_parts = pathinfo($_SERVER['PHP_SELF']);
$page = $path_parts["basename"];
 
//=========================================    
// connection à la DB
//=========================================
$link = mysql_connect ($hostname_fulleyeMiseajour,$username_fulleyeMiseajour,$password_fulleyeMiseajour) or die ('Erreur : '.mysql_error() );
mysql_select_db($database_fulleyeMiseajour) or die ('Erreur :'.mysql_error());
 
//=========================================    
// requête SQL qui compte le nombre total  
// d'enregistrements dans la table.
//=========================================
$select = 'SELECT count(identifiant) FROM photosponsor WHERE photosponsor.sponsor="'.$id .'"';
$result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );
$row = mysql_fetch_row($result);
$total = $row[0];
     
//=========================================
// vérifier la validité de notre variable  
// $limite;
//=========================================
$verifLimite= verifLimite($limite,$total,$nombre);
// si la limite passée n'est pas valide on la remet à zéro
if(!$verifLimite)  {
    $limite = 0;
}
//=========================================
// requête SQL qui ne prend que le nombre  
// d'enregistrement necessaire à l'affichage.
//=========================================
$select = 'select * FROM photosponsor,sponsor WHERE photosponsor.sponsor="'.$id .'" limit '.$limite.','.$nombre;
$result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );
     
?>
<table width="370" border="0" align="center" cellpadding="0" cellspacing="1">
  <tr class="FdHaut" height="20">  
    <td><?php echo $row['nomsponsor']; ?></td>
  </tr>
  <tr>
    <td height="400" align="center">  
      <?
 //=========================================    
// si on a récupéré un resultat on l'affiche.
//=========================================
if($total) {
    // début du tableau
    echo '<table align="center">'."\n";
      // lecture et affichage des résultats sur 2 colonnes    
    while($row = mysql_fetch_array($result)) {
        echo '<tr align="center">';
        echo '<td ><img src="'.$row['photosponsor'].'"</td>';
        echo '</tr>'."\n";
    }
    echo '</table>'."\n";
}
else echo 'Pas d\'enregistrements dans cette table...';
mysql_free_result($result);
 
 
?>
    </td>
  </tr>
  <tr class="FdHaut" align="center" height="20">  
    <td><?
 //=========================================    
// si le nombre d'enregistrement à afficher  
// est plus grand que $nombre  
//=========================================
if($total > $nombre) {
    // affichage des liens vers les pages
    affichePages($nombre,$page,$total);
}
?>
 
Voila le code, de ma page, maintenant je ne sais pas si il est nul ou pas .... En fait avec ce code je recupere bien la premeire photo ds la BD selon le sponsor choisi mais les liens 1.2.3..... me signale 'erreur' et donc n'affiche rien
J'ai mis les fonctions ds fonctions.php
 
Voila fnctions.php
 
 
    if(isset($_GET['limite']))  
        $limite=$_GET['limite'];    else   $limite=0;
 
function verifLimite($limite,$total,$nombre) {
    // je verifie si limite est un nombre.
    if(is_numeric($limite)) {
         
 
         
        if(($limite >=0) && ($limite <= $total) && (($limite%$nombre)==0)) {
           
            $valide = 1;
        }    
        else {
           
            $valide = 0;
        }
    }
    else {
           
            $valide = 0;
    }
 
return $valide;
}
 
 
function affichePages($nb,$page,$total) {
        $nbpages=ceil($total/$nb);
        $numeroPages = 1;
        $compteurPages = 1;
        $limite  = 0;
        echo '<table  height="20" border = "0" ><tr>'."\n";
        while($numeroPages <= $nbpages) {
        echo '<td ><a  class="txtDate" href = "'.$page.'?limite='.$limite.'">'.$numeroPages.'</a></td>'."\n";
        $limite = $limite + $nb;
        $numeroPages = $numeroPages + 1;
        $compteurPages = $compteurPages + 1;
            if($compteurPages == 10) {
            $compteurPages = 1;
            }
        }
        echo '</tr></table>'."\n";
}
 
 
Voila si tu comprends kkchose ds cette supercherie lol

n°1199792
sielfried
Posté le 14-09-2005 à 22:57:28  profilanswer
 

Utilise les balides cpp quand tu balances du code, stp.
 
A première vue, s'il t'affiche "Erreur" tout seul (essaie de donner des noms plus clairs à tes erreurs...), c'est que ton $_GET['VARsponsorID'] est pas défini.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1199929
Master p
My new cock ring :D
Posté le 15-09-2005 à 00:24:58  profilanswer
 

bourin77 a écrit :

Code :
  1. <?php require_once('Connections/fulleyeMiseajour.php');
  2. require 'administration/fonctions.php';
  3. $id = isset($_GET['VARsponsorID']) ? $_GET['VARsponsorID'] : die('Erreur'); 
  4. // on va afficher 5 résultats par page.
  5. $nombre = 1; 
  6. // si limite n'existe pas on l'initialise à zéro
  7. if (!$limite) $limite = 0;
  8. // on cherche le nom de la page.     
  9. $path_parts = pathinfo($_SERVER['PHP_SELF']);
  10. $page = $path_parts["basename"];
  11. //=========================================     
  12. // connection à la DB
  13. //=========================================
  14. $link = mysql_connect ($hostname_fulleyeMiseajour,$username_fulleyeMiseajour,$password_fulleyeMiseajour) or die ('Erreur : '.mysql_error() );
  15. mysql_select_db($database_fulleyeMiseajour) or die ('Erreur :'.mysql_error());
  16. //=========================================     
  17. // requête SQL qui compte le nombre total  
  18. // d'enregistrements dans la table.
  19. //=========================================
  20. $select = 'SELECT count(identifiant) FROM photosponsor WHERE photosponsor.sponsor="'.$id .'"';
  21. $result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );
  22. $row = mysql_fetch_row($result);
  23. $total = $row[0];
  24.    
  25. //=========================================
  26. // vérifier la validité de notre variable  
  27. // $limite;
  28. //=========================================
  29. $verifLimite= verifLimite($limite,$total,$nombre);
  30. // si la limite passée n'est pas valide on la remet à zéro
  31. if(!$verifLimite)  {
  32.     $limite = 0;
  33. }
  34. //=========================================
  35. // requête SQL qui ne prend que le nombre  
  36. // d'enregistrement necessaire à l'affichage.
  37. //=========================================
  38. $select = 'select * FROM photosponsor,sponsor WHERE photosponsor.sponsor="'.$id .'" limit '.$limite.','.$nombre;
  39. $result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );
  40.    
  41. ?>
  42. <table width="370" border="0" align="center" cellpadding="0" cellspacing="1">
  43.   <tr class="FdHaut" height="20">
  44.     <td><?php echo $row['nomsponsor']; ?></td>
  45.   </tr>
  46.   <tr>
  47.     <td height="400" align="center">
  48.       <?
  49. //=========================================     
  50. // si on a récupéré un resultat on l'affiche.
  51. //=========================================
  52. if($total) {
  53.     // début du tableau
  54.     echo '<table align="center">'."\n";
  55.       // lecture et affichage des résultats sur 2 colonnes     
  56.     while($row = mysql_fetch_array($result)) {
  57.         echo '<tr align="center">';
  58.         echo '<td ><img src="'.$row['photosponsor'].'"</td>';
  59.         echo '</tr>'."\n";
  60.     }
  61.     echo '</table>'."\n";
  62. }
  63. else echo 'Pas d\'enregistrements dans cette table...';
  64. mysql_free_result($result);
  65. ?>
  66.     </td>
  67.   </tr>
  68.   <tr class="FdHaut" align="center" height="20">
  69.     <td><?
  70. //=========================================     
  71. // si le nombre d'enregistrement à afficher  
  72. // est plus grand que $nombre  
  73. //=========================================
  74. if($total > $nombre) {
  75.     // affichage des liens vers les pages
  76.     affichePages($nombre,$page,$total);
  77. }
  78. ?>
  79. Voila le code, de ma page, maintenant je ne sais pas si il est nul ou pas .... En fait avec ce code je recupere bien la premeire photo ds la BD selon le sponsor choisi mais les liens 1.2.3..... me signale 'erreur' et donc n'affiche rien
  80. J'ai mis les fonctions ds fonctions.php
  81. Voila fnctions.php
  82.     if(isset($_GET['limite']))
  83.         $limite=$_GET['limite'];    else   $limite=0;
  84. function verifLimite($limite,$total,$nombre) {
  85.     // je verifie si limite est un nombre.
  86.     if(is_numeric($limite)) {
  87.        
  88.        
  89.         if(($limite >=0) && ($limite <= $total) && (($limite%$nombre)==0)) {
  90.          
  91.             $valide = 1;
  92.         }   
  93.         else {
  94.          
  95.             $valide = 0;
  96.         }
  97.     }
  98.     else {
  99.          
  100.             $valide = 0;
  101.     }
  102. return $valide;
  103. }
  104. function affichePages($nb,$page,$total) {
  105.         $nbpages=ceil($total/$nb);
  106.         $numeroPages = 1;
  107.         $compteurPages = 1;
  108.         $limite  = 0;
  109.         echo '<table  height="20" border = "0" ><tr>'."\n";
  110.         while($numeroPages <= $nbpages) {
  111.         echo '<td ><a  class="txtDate" href = "'.$page.'?limite='.$limite.'">'.$numeroPages.'</a></td>'."\n";
  112.         $limite = $limite + $nb;
  113.         $numeroPages = $numeroPages + 1;
  114.         $compteurPages = $compteurPages + 1;
  115.             if($compteurPages == 10) {
  116.             $compteurPages = 1;
  117.             }
  118.         }
  119.         echo '</tr></table>'."\n";
  120. }


 
 
Voila si tu comprends kkchose ds cette supercherie lol



---------------
HAHAHA I M USING TEH INTERNET
n°1199930
Master p
My new cock ring :D
Posté le 15-09-2005 à 00:35:02  profilanswer
 

Code :
  1. # //=========================================
  2. # // requête SQL qui ne prend que le nombre   
  3. # // d'enregistrement necessaire à l'affichage.
  4. # //=========================================
  5. # $select = 'select * FROM photosponsor,sponsor WHERE photosponsor.sponsor="'.$id .'" limit '.$limite.','.$nombre;
  6. # $result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );
  7. #     // début du tableau
  8. #     echo '<table align="center">'."n";
  9. #       // lecture et affichage des résultats sur 2 colonnes     
  10. #     while($row = mysql_fetch_array($result)) {
  11. #         echo '<tr align="center">';
  12. #         echo '<td ><img src="'.$row['photosponsor'].'"</td>';
  13. #         echo '</tr>'."n";
  14. #     }

Structure des tables photosponsor et sponsor ?
 
edit : non finalement, c'est tellement bien foutu que je pige même pas où tu retrouves ton erreur :/


Message édité par Master p le 15-09-2005 à 00:39:56

---------------
HAHAHA I M USING TEH INTERNET
n°1199951
gatsusat
Posté le 15-09-2005 à 07:26:23  profilanswer
 

'</a></td>'."\n"; <===
tu peux me dire l'intérêt de faire ça ? je trouve ca débile
 
'</a></td>\n'; <==== la c'est mieux non ?
 
on dirait un gros manque de connaissances en PHP

n°1199973
sielfried
Posté le 15-09-2005 à 09:20:49  profilanswer
 

Les échappements sont pas interprétés s'ils sont pas entourés de doubles quotes, donc pour le coup ce qu'il fait est nécessaire.
 
Enfin, il aura juste un retour à la ligne dans sa source html entre ses lignes et ses tableaux, c'est pas vraiment indispensable. :spamafote:


Message édité par sielfried le 15-09-2005 à 09:21:03

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
mood
Publicité
Posté le 15-09-2005 à 09:20:49  profilanswer
 

n°1199979
gatsusat
Posté le 15-09-2005 à 09:43:43  profilanswer
 

ca permet d'avoir un code source propre quand tu veux lire le source et comprendre un peu mieux ton bordel.
 
Mais oki j'avais zappé pour les échappement qui passent pas avec les ""  
mais autant tout mettre en "" c'est bien plus simple non ?
 
Ah nan c'est pas plus simple car faudrait échapper les autres quotes internes

n°1199989
soju
One shot !
Posté le 15-09-2005 à 09:52:41  profilanswer
 

gatsusat a écrit :

mais autant tout mettre en "" c'est bien plus simple non ?
Ah nan c'est pas plus simple car faudrait échapper les autres quotes internes


pas plus simple et surtout moins performant car le parser cherche les variables à interpréter.

n°1200006
sielfried
Posté le 15-09-2005 à 10:03:03  profilanswer
 

gatsusat a écrit :

ca permet d'avoir un code source propre quand tu veux lire le source et comprendre un peu mieux ton bordel.


 
J'sais bien, mais perso je le fais jamais, par flemme (et parce que j'y pense jamais)... donc je justifiais. [:aztechxx]


Message édité par sielfried le 15-09-2005 à 10:03:26

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1200584
bourin77
Posté le 15-09-2005 à 16:48:39  profilanswer
 

salut,
tu as raison j'ai défini mes erreurs et j'ai bien l'erreur qui vient de la récuperation de la variable sponsor. $id = isset($_GET['VARsponsorID']) ? $_GET['VARsponsorID'] : die('Erreur');  . Je vais regarder dans des tuto pour récuperer un identifiant car je ne vois pas l'erreur sur $id  
Par contre est ce que ca peut venir de ma fonction de pagination dans le lien ?
 

n°1200595
gatsusat
Posté le 15-09-2005 à 16:58:46  profilanswer
 

c'est pas comme cela qu'on utilise die
 
http://fr.php.net/manual/fr/function.exit.php
 
die est un alias de la fonction exit()
 
sinon le mieux c'est de faire ceci :  
 

Code :
  1. $id = isset($_GET['VARsponsorID']) ? $_GET['VARsponsorID'] : "";


 
puis faire le test tout bidon :  

Code :
  1. if $id<>"" {
  2.   fait ce qu'il y a à faire
  3. }
  4. else {
  5.   faire autre chose
  6. }
  7. end if


 
ceci dans le cas ou id est une string, si tu veux t'en servir comme un nombre, tu peux mettre -1 comme valeur à ID par exemple
 
edit :
 
dans le cas ou tu voudrais avoir un die(machin chose)
faudrait faire ceci directement :  

Code :
  1. $id = $_GET['VARsponsorID'] or die("Erreur" );


Message édité par gatsusat le 15-09-2005 à 17:04:40
n°1200711
bourin77
Posté le 15-09-2005 à 21:17:23  profilanswer
 

en fait je recupere bien le nombre de photo correspondant aux sponsor choisi. Donc je pense que ca ne vient pas de $id je vais essayer de voir ma page de fonctions.php
Peut etre que ca vient de la ...........  
BIZARRE


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Probleme de requete

 

Sujets relatifs
problème de requête[VBA] Access, probleme de requete
[résolu] Problème de requête, CPU à 100%...[SQL] Problème écriture requête
Problème de requete sql..nécessité d'une requete récursive??problème récupération de donnée après une requete
Probleme dans requete sql[MySQL] Probleme de requete migrée depuis Access
Problème requête sqlProblème de reconstruction de requete en PROC
Plus de sujets relatifs à : Probleme de requete


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR