Précédent   Forum du club des développeurs et IT Pro > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 05/12/2012, 15h14   #1
speedylol
Membre du Club
 
Homme Philippe
Inscription : octobre 2004
Messages : 328
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Âge : 46
Localisation : Belgique

Informations forums :
Inscription : octobre 2004
Messages : 328
Points : 55
Points : 55
Envoyer un message via MSN à speedylol
Par défaut Tableau sortie d'image

Bonjour j'ai un petit soucis , je recherche une images par annonce via mon moteur de recherche , j'ai une erreur dans mon script au niveau mysql_num_rows(),

Une idée svp?

Je pense que dans le mysql_num_row() c'est de compter id_gal qui est le second index de ma table image mais comment le faire svp?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
      while($plus = mysql_fetch_assoc($data))
      {
      $image = $data["idA"];/**** elle existe bien tester avec echo c'est le résultat des recherches****/
 
echo'<table>';
 
$nbCol = 3;
$query = 'SELECT * FROM im_annonce WHERE id_gal='.$image.' LIMIT 0,1'; /*********une seule image par annonce******/
$result = mysql_query($query);
$nb = mysql_num_rows($result);/****** l'erreur est ici **********/
$nbLigne = ceil($nb/$nbCol);
 
    for($l=0;$l<$nbLigne;$l++)
    {
    echo'<tr>';
    for($c=0;$c<$nbCol;$c++)
    {
    if($ligne=mysql_fetch_array($result)){
 
        vignette('image_annonce/'.$ligne["gal"].'', 300, 175);
 
    echo'<td>'.$ligne["gal"].'</td>'; // nomCol = nom du champs
        }
    else {
        echo'<td>';
        vignette('image_annonce/nophoto.jpg', 300, 175);
 
        echo'<img src="MINIimage_annonce/nophoto.jpg" border="0" />';
        echo'</td>';
    }
    }
    echo'</tr>';
    }
    echo'</table>';
        }
speedylol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2012, 15h43   #2
jreaux62
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 3 778
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 46
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 3 778
Points : 7 778
Points : 7 778
Envoyer un message via Skype™ à jreaux62
Citation:
Envoyé par speedylol Voir le message
Une idée svp?
Ca devient très pénible, ces gens qui demandent si on a "une idée"...

Je suppose qu'on doit aussi deviner quelle est la structure des tables, les champs et ce qu'ils contiennent ?

Tiens, en voilà une, d'idée : fais des echo de tes variables, pour savoir ce qu'elles contiennent.
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
"Quand le sage montre la lune, le sot regarde le doigt."
Confucius, Homme d'Etat et philosophe chinois (551-479 av. J.-C).
Site perso Mes tutos DVP
Gestion-Affichage de Nouvelles Affichage en tableau HTML Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2012, 15h58   #3
CinePhil
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 13 666
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 49
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 13 666
Points : 25 513
Points : 25 513
Envoyer un message via MSN à CinePhil
Citation:
Code :
$nb = mysql_num_rows($result);/****** l'erreur est ici **********/
Quelle erreur ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2012, 16h54   #4
speedylol
Membre du Club
 
Homme Philippe
Inscription : octobre 2004
Messages : 328
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Âge : 46
Localisation : Belgique

Informations forums :
Inscription : octobre 2004
Messages : 328
Points : 55
Points : 55
Envoyer un message via MSN à speedylol
voici l'erreur que cela me marque.
Citation:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\Program Files\EasyPHP-5.3.8.1\new-himmo\search-val.php
Voici la table mysql

Code sql :
1
2
3
4
5
6
7
CREATE TABLE `im_annonce` (
  `idg` int(4) NOT NULL AUTO_INCREMENT,
  `id_gal` varchar(150) NOT NULL DEFAULT '',
  `gal` tinytext NOT NULL,
  `date` varchar(11) NOT NULL DEFAULT '00-00-0000',
  PRIMARY KEY (`idg`)
);
speedylol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2012, 18h23   #5
Bovino
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 18 547
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 42
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 18 547
Points : 66 425
Points : 66 425
Regarde la doc de mysql_query pour comprendre pourquoi tu as un booléen comme résultat.
D'ailleurs, tu peux aussi en profiter pour lire l'avertissement en haut de la page !
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 05/12/2012, 21h09   #6
speedylol
Membre du Club
 
Homme Philippe
Inscription : octobre 2004
Messages : 328
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Âge : 46
Localisation : Belgique

Informations forums :
Inscription : octobre 2004
Messages : 328
Points : 55
Points : 55
Envoyer un message via MSN à speedylol
je viens de lire un tuto sur la jointure cela serait il la solution pour sortir , les données des table qui on une correspondance avec la valeur idA.

Mais je vois pas très bien comment mettre cela en place seriez vous me guider vers la solution svp?

Je vous en remercie
speedylol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2012, 22h03   #7
ABCIWEB
Expert Confirmé
 
Homme Alain
Inscription : septembre 2010
Messages : 1 926
Détails du profil
Informations personnelles :
Nom : Homme Alain
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : septembre 2010
Messages : 1 926
Points : 2 866
Points : 2 866
Faudrait déjà apprendre à faire correctement ta requête pour voir ce qu'elle retourne avant de penser à faire des jointures.
Ce qu'il fallait retenir dans le lien donné par Bovino c'est
Citation:
Pour les requêtes du type SELECT, SHOW, DESCRIBE, EXPLAIN et les autres requêtes retournant un jeu de résultats, mysql_query() retournera une ressource en cas de succès, ou FALSE en cas d'erreur.
Dans ton cas si tu n'as pas de ressource en sortie c'est que ta requête a retourné fasle (ce fameux boolean).
Pour faire ta requête essaie plutôt une syntaxe de ce genre :
Code :
$query = "SELECT * FROM im_annonce WHERE id_gal='".mysql_real_escape_string($image)."' LIMIT 0,1";
Ensuite pour voir les erreurs durant le développement tu peux faire
Code :
$result = mysql_query($query) or die(mysql_error());
ou sinon activer les erreurs mysql.
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/12/2012, 00h36   #8
speedylol
Membre du Club
 
Homme Philippe
Inscription : octobre 2004
Messages : 328
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Âge : 46
Localisation : Belgique

Informations forums :
Inscription : octobre 2004
Messages : 328
Points : 55
Points : 55
Envoyer un message via MSN à speedylol
bonsoir ABCIWEB,

J'ai trouvé l'astuce mysql que tu a noté, le soucis je n'est plus aucun erreur mais aucune photo s'affiche , pourtant elle sont bien dans la bdd?

j'ai même teste par un echo ('$ligne['gal']'); aucun affichage .

merci à vous tous pour votre aide
speedylol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2012, 19h59   #9
ABCIWEB
Expert Confirmé
 
Homme Alain
Inscription : septembre 2010
Messages : 1 926
Détails du profil
Informations personnelles :
Nom : Homme Alain
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : septembre 2010
Messages : 1 926
Points : 2 866
Points : 2 866
Pour commencer à débugguer, après $nb = mysql_num_rows($result); tu peux déjà faire : echo $nb; pour savoir le nombre de lignes que retourne ta requête.
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/12/2012, 20h22   #10
speedylol
Membre du Club
 
Homme Philippe
Inscription : octobre 2004
Messages : 328
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Âge : 46
Localisation : Belgique

Informations forums :
Inscription : octobre 2004
Messages : 328
Points : 55
Points : 55
Envoyer un message via MSN à speedylol
Non pas encore fait merci, je teste et je te tiens au courant , merci cela fait Trois jours que je suis la dessus.

Merci à tous

je viens de faire le test résultat = 0

speedylol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2012, 20h55   #11
speedylol
Membre du Club
 
Homme Philippe
Inscription : octobre 2004
Messages : 328
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Âge : 46
Localisation : Belgique

Informations forums :
Inscription : octobre 2004
Messages : 328
Points : 55
Points : 55
Envoyer un message via MSN à speedylol
Merci à tous j'ai trouvé mon erreur

Ancien code

Code :
1
2
3
      while($plus = mysql_fetch_assoc($data))
      {
      $image = $data["idA"]
Code résolu

Code :
1
2
3
      while($plus = mysql_fetch_assoc($data))
      {
      $image = $plus["idA"]
Les photos affiche mais je n'ai une une seule ligne alors que j'ai 24 photos avec une pagination de 3 pages et 10 photos par page.
speedylol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2012, 09h25   #12
jreaux62
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 3 778
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 46
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 3 778
Points : 7 778
Points : 7 778
Envoyer un message via Skype™ à jreaux62
=> Affichage de données dans un tableau HTML
Affichage en Ligne ou en Colonne, provenant d'un array ou d'une Base de Données
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
"Quand le sage montre la lune, le sot regarde le doigt."
Confucius, Homme d'Etat et philosophe chinois (551-479 av. J.-C).
Site perso Mes tutos DVP
Gestion-Affichage de Nouvelles Affichage en tableau HTML Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2012, 21h09   #13
speedylol
Membre du Club
 
Homme Philippe
Inscription : octobre 2004
Messages : 328
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Âge : 46
Localisation : Belgique

Informations forums :
Inscription : octobre 2004
Messages : 328
Points : 55
Points : 55
Envoyer un message via MSN à speedylol
Bonsoir je reviens vers vous, je viens de tester une autre façon de procédé mais rien ne fait j'ai deux photos mais j'ai que une seule qui s'affiche

voici les deux table ici dessous et le code une aide svp?



Contenu de la table annonce

|59|41AZSB|kendra|kendra@gmail.be|place du tombeux|4250|Belgique|Liege|Geer|2|4|019.32.28.74|0472.677.506|Maison à Vendre|400|0|2|65|45|2012-12-27|Particulier|petit appartement sympa|2012-12-23|0
|60|Y96X6F|kendra|kendra@gmail.be|place du tombeux|4250|Belgique|Liege|Geer|2|4|019.32.28.74|0000.000.000|Maison à Louer|400|34|1|245|345|2012-12-25|Enchère|waza|2012-12-23|0


table im_annonce igd-id_gal-photo-date

|55|59|nophoto.jpg|2012-12-23
|56|60|nophoto.jpg|2012-12-23



Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
      while($plus = mysql_fetch_assoc($data))
      {
      $_SESSION['image'] = $plus["idA"];
	  $_SESSION['prix'] = $plus["prixb"];  
	  }
echo'<TABLE BORDER="0" WIDTH="90%" CELLSPACING="0" CELLSPACING="3">';
$query = "SELECT * FROM im_annonce where id_gal=".$_SESSION['image']." limit 0,1";
$result = mysql_query($query) or die(mysql_error());
 
$k=0;
while ($row=mysql_fetch_array($result))
{
$im[$k]=$row['gal'];
$tab2[$k]=$_SESSION['prix'];
$k++;
}
$MAX_COLUMN = 4;
$MAX_ROW = ceil ( count( $tab2 ) / $MAX_COLUMN ) ;
for ( $ism = 0; $ism < $MAX_ROW; $ism ++ )
{
  echo "<tr>";
  for ( $j = 0; $j < $MAX_COLUMN; $j ++ )
  {
    $current = $ism + ( $j * $MAX_ROW );
    if (isset( $tab2[ $current ]))
    {
	 miniature('image_annonce/'.$im[$current].'', 150, 100);			
     echo'<td width="100%"><table border="0" cellspacing="0" cellpadding="0">
          <tr>
          <td><table width="100%" border="0" cellspacing="4" cellpadding="4">
          <tr>
          <td valign="top""><img src="MINI11image_annonce/'.$im[$current].'" border="0"><br /><br />
          <strong>'.$tab2[$current].'&nbsp;€</strong></td>'; 
	 echo"<td></td>
          </tr>
          </table>
          </td>
          </tr>
          <tr>
          <td>&nbsp;</td>
          </tr>
         </table></td>"; 
        }
     else break;
    }
  echo "</tr>";
}
 
echo"</TABLE>";
speedylol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2012, 19h25   #14
speedylol
Membre du Club
 
Homme Philippe
Inscription : octobre 2004
Messages : 328
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Âge : 46
Localisation : Belgique

Informations forums :
Inscription : octobre 2004
Messages : 328
Points : 55
Points : 55
Envoyer un message via MSN à speedylol
bonsoir je ne vois que la jointure entre la table annonce et la table im_annonce mais comme je n'est jamais cela j'aurais aimez une petite aide sur ce niveau de programmations svp pour sortir mais photos en tableau
speedylol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2012, 22h34   #15
speedylol
Membre du Club
 
Homme Philippe
Inscription : octobre 2004
Messages : 328
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Âge : 46
Localisation : Belgique

Informations forums :
Inscription : octobre 2004
Messages : 328
Points : 55
Points : 55
Envoyer un message via MSN à speedylol
Bonsoir j'ai trouver la solutions le seul soucis que j'ai encore c'est que l'écart est trop grand entre chaque colonne c'est sur une petite erreur mais je la vois pas.

un petit cout de pouce

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
echo'<table style="width:90%;left:0px;">';
     $k=0;
     while($plus = mysql_fetch_assoc($data))
      {
 
$image[$k] =$plus["idA"];
$idd[$k]=$plus["idA"];	
$tab2[$k]=$plus["prixb"];
$k++;
}
$MAX_COLUMN = 4;
$MAX_ROW = ceil ( count( $tab2 ) / $MAX_COLUMN ) ;
for ( $ism = 0; $ism < $MAX_ROW; $ism ++ )
{
  echo "<tr>";
  for ( $j = 0; $j < $MAX_COLUMN; $j ++ )
  {
    $current = $ism + ( $j * $MAX_ROW );
    if (isset( $tab2[ $current ]))
    {			
     echo'<td><table style="width:auto;border:0px;">
          <tr>
          <td>
          <table style="width:auto;border:0px;">
          <tr>
          <td>';
		$select=mysql_query("SELECT * FROM im_annonce WHERE id_gal=".$image[$current]." LIMIT 0,1");
		if($result = mysql_fetch_object($select))
		{
		$im = $result->gal;
	   	if (isset($im))
		{	
        miniature('image_annonce/'.$im.'', 150, 100);
		echo'<img src="MINI11image_annonce/'.$im.'" border="0" />';
		}
		else
		{
		echo'<img src="MINI11image_annonce/'.$im.'" border="0" />';
		}
	    }		  
		echo'<br /><br />
          <strong>'.$tab2[$current].'&nbsp;€</strong></td>'; 
	 echo"<td></td>
          </tr>
          </table>
          </td>
          </tr>
          <tr>
          <td>&nbsp;</td>
          </tr>
     </table>"; 
        }
     else break;
    }
 echo "</tr>";
}
echo"</table>";
speedylol est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 00h59.


 
 
 
 
Partenaires

Hébergement Web