table vide [résolu] - PHP - Programmation
Marsh Posté le 14-02-2005 à 18:26:09
on veut bien t'aider mais c'est quoi le message d'erreur ?
Marsh Posté le 14-02-2005 à 18:32:46
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.
Marsh Posté le 15-02-2005 à 08:42:22
$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...
Marsh Posté le 15-02-2005 à 08:50:22
ReplyMarsh Posté le 15-02-2005 à 10:45:26
soju a écrit : on veut bien t'aider mais c'est quoi le message d'erreur ? |
L'erreur est :
Code :
|
Sachant que $jpg = "wdadu"
Marsh Posté le 15-02-2005 à 11:04:11
mirascheat a écrit : L'erreur est :
|
cette erreur ne correspond pas au code que tu as mis dans ton premier message, tu as fait des modifs ??
Marsh Posté le 15-02-2005 à 14:12:26
En effet j'avais changé d'après le conseil de duncan :
Code :
|
En :
Code :
|
Mais ca ne me semble pas du tout ca.
Je remet dans le code que j'ai :
Code :
|
Mais à l'écran j'ai juste :
Code :
|
Sans l'erreur
Marsh Posté le 15-02-2005 à 14:20:07
Tu veux pas essayer de faire un
Code :
|
Comme ça, tu nous fais un petit
Code :
|
de vérification ?
Marsh Posté le 15-02-2005 à 14:27:30
bien sur que je peux le faire
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 ?
Marsh Posté le 15-02-2005 à 14:31:29
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
Marsh Posté le 15-02-2005 à 14:35:58
Erreur 0... t'es sur que ça foire pas au moment de la connection ?
Marsh Posté le 15-02-2005 à 14:38:56
Je te mets le code entier :
Code :
|
Marsh Posté le 15-02-2005 à 14:42:26
pourquoi tu n'utilises pas un mysql_fetch_x ?
Marsh Posté le 15-02-2005 à 14:42:57
Tu testes ni si le mysql_connect marche ni si le mysql_select_db marche.
Marsh Posté le 15-02-2005 à 14:43:10
Tu me redis à quel numéro de ligne ça foire ?
Marsh Posté le 15-02-2005 à 14:43:25
parce que je pênsais qu'un mysql_num_rows correspondait plus à mon cas, ca n'est pas le cas ?
Marsh Posté le 15-02-2005 à 14:45:30
et puis pour avoir ton nombre de dvd's
Code :
|
Marsh Posté le 15-02-2005 à 14:45:36
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 :
|
Marsh Posté le 15-02-2005 à 14:46:15
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
Marsh Posté le 15-02-2005 à 14:46:17
KangOl a écrit : et puis pour avoir ton nombre de dvd's
|
oui mais en fait, il reutilise le nombre d'enregistrements dans sa boucle un peu plus loin.
Marsh Posté le 15-02-2005 à 14:47:02
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 ?
Marsh Posté le 15-02-2005 à 14:47:26
KangOl a écrit : et puis pour avoir ton nombre de dvd's
|
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 ...
Marsh Posté le 15-02-2005 à 14:50:43
Code :
|
Marsh Posté le 15-02-2005 à 14:51:34
je sais que c'est pas très logique mais tu veux pas essayer un :
Code :
|
Putain que je suis content d'utiliser une classe pour mes requêtes
Marsh Posté le 15-02-2005 à 14:56:04
et le count(*) dans :
Code :
|
il correspond à quoi ?
je suis désolé je débute en PHP ...
Marsh Posté le 15-02-2005 à 14:56:35
latruffe a écrit : je sais que c'est pas très logique mais tu veux pas essayer un :
|
tu peux m'expliquer un peu ce que tu entends par là ?
Marsh Posté le 15-02-2005 à 14:56:40
- comme dit esox_ch, abandonne les mysql_result
- pourquoi utilise tu la meme variable $selection dans deux requetes differentes ??!
Marsh Posté le 15-02-2005 à 14:57:41
mirascheat a écrit : et le count(*) |
ce n'est pas du php, c'est du sql
Marsh Posté le 15-02-2005 à 14:58:18
latruffe a écrit : je sais que c'est pas très logique mais tu veux pas essayer un :
|
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()
Marsh Posté le 15-02-2005 à 14:58:45
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
Marsh Posté le 15-02-2005 à 14:59:08
esox_ch a écrit : Bon plusieurs trucs a corriger, |
il faudrait pas plutot marquer ca ???
Code :
|
parce que sinon à l'écran ca m'affiche ca :
Code :
|
Marsh Posté le 15-02-2005 à 14:59:27
esox_ch a écrit : Tu la vois ou ta classe la ? |
Bah justement, je la vois pas
Marsh Posté le 15-02-2005 à 15:01:06
mirascheat a écrit : et le count(*) dans :
|
mirascheat a écrit : il faudrait pas plutot marquer ca ???
|
Ouep dsl, j'ai trop vite tapé, j'ai sucré les () . Sorry
Marsh Posté le 15-02-2005 à 15:08:49
esox_ch a écrit : Tu la vois ou ta classe la ? |
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(*)
Marsh Posté le 15-02-2005 à 15:12:35
Le meme chose que dans le batch, dans le shell et dans pas mal d'autres langages y compris le sql ( => www.mysql.com ) , ça veux dire "tout"
Marsh Posté le 15-02-2005 à 15:15:14
il va compter les lignes, et le nombre de ligne sera pareil au nombre de media retournés
Marsh Posté le 14-02-2005 à 18:22:51
Bonjour,
Je fais un :
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