Probleme de requete - PHP - Programmation
Marsh Posté le 14-09-2005 à 21:47:09
Fait voir ton code, sinon ça va être dur.
Marsh Posté le 14-09-2005 à 21:52:33
$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
Marsh Posté le 14-09-2005 à 21:58:46
Ben précise aussi un peu ton problème.
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.
Marsh Posté le 14-09-2005 à 22:17:20
<?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
Marsh Posté le 14-09-2005 à 22:57:28
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.
Marsh Posté le 15-09-2005 à 00:24:58
bourin77 a écrit :
|
Marsh Posté le 15-09-2005 à 00:35:02
Code :
|
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
Marsh Posté le 15-09-2005 à 07:26:23
'</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
Marsh Posté le 15-09-2005 à 09:20:49
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.
Marsh Posté le 15-09-2005 à 09:43:43
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
Marsh Posté le 15-09-2005 à 09:52:41
gatsusat a écrit : mais autant tout mettre en "" c'est bien plus simple non ? |
pas plus simple et surtout moins performant car le parser cherche les variables à interpréter.
Marsh Posté le 15-09-2005 à 10:03:03
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.
Marsh Posté le 15-09-2005 à 16:48:39
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 ?
Marsh Posté le 15-09-2005 à 16:58:46
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 :
|
puis faire le test tout bidon :
Code :
|
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 :
|
Marsh Posté le 15-09-2005 à 21:17:23
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
Marsh Posté le 14-09-2005 à 21:39:27
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