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

  FORUM HardWare.fr
  Programmation
  PHP

  [résolu] table vide

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

[résolu] table vide

n°981367
mirascheat
Posté le 14-02-2005 à 18:22:51  profilanswer
 

Bonjour,
Je fais un :

Code :
  1. $selection = mysql_query("select media from $jpg" );
  2. $media_nb = mysql_num_rows($selection);


Il semblerait que quand la table est vide, il y ait une erreur. Est-ce un comportement normal ? Il faut alors faire un test de taille de table ou autre chose ?
Merci


Message édité par mirascheat le 15-02-2005 à 16:35:50
mood
Publicité
Posté le 14-02-2005 à 18:22:51  profilanswer
 

n°981373
soju
One shot !
Posté le 14-02-2005 à 18:26:09  profilanswer
 

on veut bien t'aider mais c'est quoi le message d'erreur ?

n°981380
dwogsi
Défaillance cérébrale...
Posté le 14-02-2005 à 18:32:46  profilanswer
 

Oui effectivement on veut bien aider mais...
En tout cas quand un table est vide: pas d'erreur, il n'y a pas de resultat c'est tout, pas de données retournée par le SGBDR.

n°981827
duncan_mc_​leod
Posté le 15-02-2005 à 08:42:22  profilanswer
 

$jpg c'est le nom de ta table ? type $jpg = "table"; ?
 
Dans ce cas déjà une requete de type :
 
$select = 'SELECT media FROM '.$jpg.'';
$requete = mysql_query ($select, $db);
$media_nb = mysql_num_rows($requete);
 
Par contre le mysql_num_rows c'est pas optimisé du tout... vaut mieux faire :
 
$select = 'SELECT count(ID) FROM '.$jpg.'';
$requete = mysql_query ($select, $db);
$media_nb = mysql_fetch_array($requete);
 
if ($media_nb != 0) { ......
 
ou sinon tout simplement :
 
$select = 'SELECT ID FROM '.$jpg.'';
$requete = mysql_query ($select, $db);
$media_nb = mysql_fetch_array($requete);
ou ID est un champ de clef unique...


Message édité par duncan_mc_leod le 15-02-2005 à 08:46:44
n°981834
soju
One shot !
Posté le 15-02-2005 à 08:50:22  profilanswer
 


ya pas mal d'erreur dans ton code, relis un peu  ;)  

n°981921
mirascheat
Posté le 15-02-2005 à 10:45:26  profilanswer
 

soju a écrit :

on veut bien t'aider mais c'est quoi le message d'erreur ?


 
L'erreur est :

Code :
  1. Something is wrong in your syntax près de ''.wdadu.'' à la ligne 1


 
Sachant que $jpg = "wdadu"

n°981929
Profil sup​primé
Posté le 15-02-2005 à 10:53:21  answer
 

fait un echo de ta requete

n°981949
soju
One shot !
Posté le 15-02-2005 à 11:04:11  profilanswer
 

mirascheat a écrit :

L'erreur est :

Code :
  1. Something is wrong in your syntax près de ''.wdadu.'' à la ligne 1



cette erreur ne correspond pas au code que tu as mis dans ton premier message, tu as fait des modifs ??

n°982180
mirascheat
Posté le 15-02-2005 à 14:12:26  profilanswer
 

En effet j'avais changé d'après le conseil de duncan :

Code :
  1. $selection = mysql_query("select media from $jpg" );


En :

Code :
  1. $selection = mysql_query("select media from '.$jpg.'" );


Mais ca ne me semble pas du tout ca.
Je remet dans le code que j'ai :

Code :
  1. $selection = mysql_query("select media from $jpg" ) or die ('ERREUR : '.mysql_error());
  2. $media_nb = mysql_num_rows($selection) or die ('ERREUR : '.mysql_error());


Mais à l'écran j'ai juste :

Code :
  1. ERREUR :


Sans l'erreur  :??:

n°982193
latruffe
Bdovore
Posté le 15-02-2005 à 14:20:07  profilanswer
 

Tu veux pas essayer de faire un  
 

Code :
  1. $query = "select media from $jpg";
  2. $selection = mysql_query($query) or die ('ERREUR : '.mysql_error());


 
Comme ça, tu nous fais un petit

Code :
  1. echo $query;


de vérification ?


---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !
mood
Publicité
Posté le 15-02-2005 à 14:20:07  profilanswer
 

n°982205
mirascheat
Posté le 15-02-2005 à 14:27:30  profilanswer
 

bien sur que je peux le faire  :jap:  
et le resultat de echo $query est :
select media from wdadu
ce qui me semble normal car $jpg = "wdadu"
par ailleurs si je fais un echo de $selection, j'ai "Resource id #3ERREUR :" ce qui montre que l'erreur est après non ?

n°982211
latruffe
Bdovore
Posté le 15-02-2005 à 14:31:29  profilanswer
 

Bizarre... à tout hasard, si tu fais un mysql_errno() à la place du mysql_error() ?
 
PS: ton echo $selection ne donnera rien : tu dois faire un mysql_fetch_qqchose.
 
3 fonctions à ta dispositionpour cela : mysql_fetch_array, mysql_fetch_row, mysql_fetch_object


Message édité par latruffe le 15-02-2005 à 14:34:19

---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !
n°982215
mirascheat
Posté le 15-02-2005 à 14:33:53  profilanswer
 

j'ai : "ERREUR : 0"

n°982217
latruffe
Bdovore
Posté le 15-02-2005 à 14:35:58  profilanswer
 

Erreur 0... t'es sur que ça foire pas au moment de la connection ?


Message édité par latruffe le 15-02-2005 à 14:38:11

---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !
n°982220
mirascheat
Posté le 15-02-2005 à 14:38:56  profilanswer
 

Je te mets le code entier :) :

Code :
  1. <html>
  2. <head>
  3. <title>Dream Theater</title>
  4. <link rel="stylesheet" type="text/css" href="style.css">
  5. <script type="text/javascript" src="style.js"></script>
  6. </head>
  7. <body>
  8. <table width="100%" height="100%">
  9.     <tr align="center">
  10.         <td valign="top">
  11.             <?php
  12.                 include("haut.php" );
  13.             ?>
  14.             <table width="40%" cellspacing="0">
  15.                 <tr>
  16.                     <td height="25"></td>
  17.                 </tr>
  18.                 <?php
  19.                     include("access.php" );
  20.                     $link = mysql_connect($host, $user, $password);
  21.                     mysql_select_db("mirascheat", $link);
  22.                     $selection = mysql_query("select jpg, name from tour" ) or die("Requête impossible" );
  23.                     echo $selection;
  24.                     $nombreligne = mysql_num_rows($selection) or die("Requête impossible" );
  25.                     $i = 0;
  26.                     while ($i<$nombreligne){
  27.                         $jpg = mysql_result($selection,$i,"jpg" ) or die("Requête impossible" );
  28.                         $name = mysql_result($selection,$i,"name" ) or die("Requête impossible" );
  29.                         echo '<tr align="center" onMouseover="makevisible2(1,\'img'.$i.'\',\'td'.(2*$i).'\',\'td'.(2*$i+1).'\')" onMouseout="makevisible2(0,\'img'.$i.'\',\'td'.(2*$i).'\',\'td'.(2*$i+1).'\')">';
  30.                             echo '<td width="10%"><img src="jpg/'.$jpg.'.jpg" border="0" width="100" height="100" style="filter:alpha(opacity=50);-moz-opacity:0.5" id="img'.$i.'"></td>';
  31.              echo '<td width="20%" id="td'.(2*$i).'"><a href="tour.php?id='.$jpg.'" target="_self" class="lien"><I>'.$name.'</I></a></td>';
  32.                             $query = "select media from $jpg";
  33.                             $selection = mysql_query($query) or die ('ERREUR : '.mysql_errno());
  34.                             echo $query;
  35.                             /*$selection = mysql_query("select media from $jpg" ) or die ('ERREUR : '.mysql_error());*/
  36.                             $media_nb = mysql_num_rows($selection) or die ('ERREUR : '.mysql_errno());
  37.                             $j = $dvd_nb = $cd_nb = 0;
  38.                             while ($j<$media_nb){
  39.                                 $media = mysql_result($selection,$j,"media" ) or die('ERREUR : '.mysql_errno());
  40.                                 if(strstr($media,DVD) != false)
  41.                                     $dvd_nb++;
  42.                                 else
  43.                                     $cd_nb++;
  44.                                 $j++;
  45.                             }
  46.                             echo $cd_nb;
  47.                             echo '<td width="10%" id="td'.(2*$i+1).'"><I>('.$cd_nb.') / ('.$dvd_nb.')</I></td>';
  48.                             echo '<td width="10%" id="td'.(2*$i+1).'"><I>(0) / (0)</I></td>';
  49.                         echo '</tr>';
  50.                         $i++;
  51.                     }
  52.                 ?>
  53.             </table>
  54.         </td>
  55.     </tr>
  56.     <tr>
  57.         <td align="center" valign="bottom" height="100%"><a href="javascript:history.go(-1)" target="_self" class="lien"><h2><b>Back</b></h2></a></td>
  58.     </tr>
  59. </table>
  60. </body>
  61. </html>

n°982223
KangOl
Profil : pointeur
Posté le 15-02-2005 à 14:42:26  profilanswer
 

pourquoi tu n'utilises pas un mysql_fetch_x ?


---------------
Nos estans firs di nosse pitite patreye...
n°982225
ratibus
Posté le 15-02-2005 à 14:42:57  profilanswer
 

Tu testes ni si le mysql_connect marche ni si le mysql_select_db marche.

n°982226
latruffe
Bdovore
Posté le 15-02-2005 à 14:43:10  profilanswer
 

Tu me redis à quel numéro de ligne ça foire ?


---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !
n°982227
mirascheat
Posté le 15-02-2005 à 14:43:25  profilanswer
 

parce que je pênsais qu'un mysql_num_rows correspondait plus à mon cas, ca n'est pas le cas ?

n°982231
KangOl
Profil : pointeur
Posté le 15-02-2005 à 14:45:30  profilanswer
 

et puis pour avoir ton nombre de dvd's

Code :
  1. select count(*) from $jpg where media='DVD'

:o


---------------
Nos estans firs di nosse pitite patreye...
n°982232
mirascheat
Posté le 15-02-2005 à 14:45:36  profilanswer
 

la connection à la BDD marche (enfin il me semble) car j'utilise auparavant ma BDD et elle commence à m'afficher des infos déjà présente dans la BDD.
 

Code :
  1. $link = mysql_connect($host, $user, $password);
  2.                     mysql_select_db("mirascheat", $link);
  3.                     $selection = mysql_query("select jpg, name from tour" ) or die("Requête impossible" );
  4.                     echo $selection;
  5.                     $nombreligne = mysql_num_rows($selection) or die("Requête impossible" );
  6.                     $i = 0;
  7.                     while ($i<$nombreligne){
  8.                         $jpg = mysql_result($selection,$i,"jpg" ) or die("Requête impossible" );
  9.                         $name = mysql_result($selection,$i,"name" ) or die("Requête impossible" );

n°982235
esox_ch
Posté le 15-02-2005 à 14:46:15  profilanswer
 

Bon plusieurs trucs a corriger,
 
1er : A chaque fois que une commande commence par mysql (y compris a la connection) tu fais un or die(mysql_error.' || '.mysql_errno.' || '.__LINE__);
 
Parceque c'est bien joli de savoir si ca marche pas, mais c'est mieux de savoir ou ca plante et pourquoi.
 
Ensuite : le mysql_result est un truc d'avant-guerre qui pompe des tonnes de resources et en plus n'est pas pratique, tu le fous loin et tu met un mysql_fetch_array($query);
 
Et apres tu reviens nous dire ;)


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°982236
latruffe
Bdovore
Posté le 15-02-2005 à 14:46:17  profilanswer
 

KangOl a écrit :

et puis pour avoir ton nombre de dvd's

Code :
  1. select count(*) from $jpg where media='DVD'

:o


 
oui mais en fait, il reutilise le nombre d'enregistrements dans sa boucle un peu plus loin.


---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !
n°982239
latruffe
Bdovore
Posté le 15-02-2005 à 14:47:02  profilanswer
 

mirascheat a écrit :

la connection à la BDD marche (enfin il me semble) car j'utilise auparavant ma BDD et elle commence à m'afficher des infos déjà présente dans la BDD.


 
J'en suis arrivé à la même conclusion.
 
Quel numéro de ligne foire ?


---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !
n°982243
mirascheat
Posté le 15-02-2005 à 14:47:26  profilanswer
 

KangOl a écrit :

et puis pour avoir ton nombre de dvd's

Code :
  1. select count(*) from $jpg where media='DVD'

:o


 
oui mais media n'est pas egal soit a DVD soit a cd , ca peut etre "DVD-R" ou "3 CD-R" ou "3 DVD-R" donc ta solution ne marche pas ...

n°982248
KangOl
Profil : pointeur
Posté le 15-02-2005 à 14:50:43  profilanswer
 

Code :
  1. ... where medi like '%DVD%'


[:spamafote]


---------------
Nos estans firs di nosse pitite patreye...
n°982249
latruffe
Bdovore
Posté le 15-02-2005 à 14:51:34  profilanswer
 

je sais que c'est pas très logique mais tu veux pas essayer un :
 

Code :
  1. $selection = mysql_query($query, $link) or die ('ERREUR : '.mysql_errno());


 
Putain que je suis content d'utiliser une classe pour mes requêtes :whistle:


---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !
n°982263
mirascheat
Posté le 15-02-2005 à 14:56:04  profilanswer
 

et le count(*) dans :

Code :
  1. select count(*) from $jpg where media='DVD'


il correspond à quoi ?
je suis désolé je débute en PHP ...

n°982267
mirascheat
Posté le 15-02-2005 à 14:56:35  profilanswer
 

latruffe a écrit :

je sais que c'est pas très logique mais tu veux pas essayer un :
 

Code :
  1. $selection = mysql_query($query, $link) or die ('ERREUR : '.mysql_errno());


 
Putain que je suis content d'utiliser une classe pour mes requêtes :whistle:


 
tu peux m'expliquer un peu ce que tu entends par là ?

n°982269
soju
One shot !
Posté le 15-02-2005 à 14:56:40  profilanswer
 

- comme dit esox_ch, abandonne les mysql_result
- pourquoi utilise tu la meme variable $selection dans deux requetes differentes ??!

n°982271
soju
One shot !
Posté le 15-02-2005 à 14:57:41  profilanswer
 

mirascheat a écrit :

et le count(*)
...
je suis désolé je débute en PHP ...


ce n'est pas du php, c'est du sql

n°982272
esox_ch
Posté le 15-02-2005 à 14:58:18  profilanswer
 

latruffe a écrit :

je sais que c'est pas très logique mais tu veux pas essayer un :
 

Code :
  1. $selection = mysql_query($query, $link) or die ('ERREUR : '.mysql_errno());


 
Putain que je suis content d'utiliser une classe pour mes requêtes :whistle:


 
 
Tu la vois ou ta classe la ?
 
 
> mira, tout le mond a debuté, mais quand on debute ou garde toujours www.php.net et www.mysql.org a portée de main, parcrque si tu va sur le site de mysql, et regarde dans la documentation, tu verra l'explication de COUNT()


Message édité par esox_ch le 15-02-2005 à 15:00:21

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°982274
latruffe
Bdovore
Posté le 15-02-2005 à 14:58:45  profilanswer
 

mirascheat a écrit :

tu peux m'expliquer un peu ce que tu entends par là ?


 
Pas juste repréciser le $link dans la query, pour lui dire d'utiliser la même connexion que précedemment.
 
Normalement il le fait tout seul mais bon  [:spamafote]


---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !
n°982276
mirascheat
Posté le 15-02-2005 à 14:59:08  profilanswer
 

esox_ch a écrit :

Bon plusieurs trucs a corriger,
 
1er : A chaque fois que une commande commence par mysql (y compris a la connection) tu fais un or die(mysql_error.' || '.mysql_errno.' || '.__LINE__);


 
il faudrait pas plutot marquer ca ???

Code :
  1. or die(mysql_error().' || '.mysql_errno().' || '.__LINE__);


 
parce que sinon à l'écran ca m'affiche ca :

Code :
  1. mysql_error || mysql_errno || 37


n°982277
latruffe
Bdovore
Posté le 15-02-2005 à 14:59:27  profilanswer
 

esox_ch a écrit :

Tu la vois ou ta classe la ?


 
Bah justement, je la vois pas :D


---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !
n°982283
esox_ch
Posté le 15-02-2005 à 15:01:06  profilanswer
 

mirascheat a écrit :

et le count(*) dans :

Code :
  1. select count(*) from $jpg where media='DVD'


il correspond à quoi ?
je suis désolé je débute en PHP ...


 

mirascheat a écrit :

il faudrait pas plutot marquer ca ???

Code :
  1. or die(mysql_error().' || '.mysql_errno().' || '.__LINE__);


 
parce que sinon à l'écran ca m'affiche ca :

Code :
  1. mysql_error || mysql_errno || 37



 
 
Ouep dsl, j'ai trop vite tapé, j'ai sucré les () :D. Sorry


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°982291
mirascheat
Posté le 15-02-2005 à 15:08:49  profilanswer
 

esox_ch a écrit :

Tu la vois ou ta classe la ?
 
 
> mira, tout le mond a debuté, mais quand on debute ou garde toujours www.php.net et www.mysql.org a portée de main, parcrque si tu va sur le site de mysql, et regarde dans la documentation, tu verra l'explication de COUNT()


 
oui je sais bien que count compte le nombre d'élément ... mais ce que je voulais dire (je me suis mal exprimé pardon) c'est à quio correspond l'étoile dans count(*)

n°982298
esox_ch
Posté le 15-02-2005 à 15:12:35  profilanswer
 

Le meme chose que dans le batch, dans le shell et dans pas mal d'autres langages y compris le sql ( => www.mysql.com :D ) , ça veux dire "tout"


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°982301
mirascheat
Posté le 15-02-2005 à 15:14:23  profilanswer
 

ok mais dans mon cas je dois remplacer * par media non ? :(

n°982305
esox_ch
Posté le 15-02-2005 à 15:15:14  profilanswer
 

il va compter les lignes, et le nombre de ligne sera pareil au nombre de media retournés


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

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

  [résolu] table vide

 

Sujets relatifs
[résolu] [JS] renseignement de parametres[résolu] Portage Windows Linux: apparition de warnings
Ecraser une table dans MySQL[résolu] utiliser une DLL .NET depuis VBA Excel 2003
[résolu] [HTML] inserer du HTML dans un fichier HTML[Resolu] Problème de DIV avec un "padding" et un "display: inline;"
Insertion "propre" d'objet virtools [RESOLU][PHP] Problème avec une boucle (RESOLU)
Gérer les cookie avec une servlet [résolu][Javascript][résolu] Empêcher les posts monosmilesques
Plus de sujets relatifs à : [résolu] table vide


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