Programmation » coquille et php [RESOLU]
coquille et php [RESOLU]
Publié le 15/12/2010 @ 13:11:28,
Par wangacoastbonjour tout le monde,
today, j'ai un petit soucis en php. Il s'agit d'un code fonctionnant dans mon logiciel de gestion de bibliothèque PMB. Il permet de générer des identifiants (id) de manière automatique par incrémentation pour les attribuer aux livres. Je ne vais pas entrer dans les détails mais les paramètres par défaut du code ne me convenant pas, j'ai bidouillé le code.
Le résultat ne pose pas de problème, apparemment je n'ai pas fait de grosse bêtise mais le logiciel me sort quand même ce message d'erreur après la génération de l'id :
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /homez.27/kaowarso/www/pmb/includes/gen_code/gen_code_exemplaire.php on line 8
Je me permets de vous mettre une copie de mon code bidouillé avec les éléments modifiés en rouge :
<?php
function init_gen_code_exemplaire($notice_id,$bull_id)
{
global $dbh;
$requete="select (expl_cb)as cb from exemplaires WHERE max(expl_id)";
$query = mysql_query($requete, $dbh);
if(mysql_num_rows($query)) {
if(($cb = mysql_fetch_object($query)))
$code_exemplaire= $cb->cb;
else $code_exemplaire = "0";
} else $code_exemplaire = "0";
return $code_exemplaire;
}
function gen_code_exemplaire($notice_id,$bull_id,$code_exemplaire)
{
$code_exemplaire++;
return $code_exemplaire;
}
et voici le code original :
<?php
function init_gen_code_exemplaire($notice_id,$bull_id)
{
global $dbh;
$requete="select max(expl_cb)as cb from exemplaires WHERE expl_cb like 'GEN%'";
$query = mysql_query($requete, $dbh);
if(mysql_num_rows($query)) {
if(($cb = mysql_fetch_object($query)))
$code_exemplaire= $cb->cb;
else $code_exemplaire = "GEN000000";
} else $code_exemplaire = "GEN000000";
return $code_exemplaire;
}
function gen_code_exemplaire($notice_id,$bull_id,$code_exemplaire)
{
$code_exemplaire++;
return $code_exemplaire;
}
un grand merci d'avance!
Dernière édition: 15/12/2010 @ 14:20:08
today, j'ai un petit soucis en php. Il s'agit d'un code fonctionnant dans mon logiciel de gestion de bibliothèque PMB. Il permet de générer des identifiants (id) de manière automatique par incrémentation pour les attribuer aux livres. Je ne vais pas entrer dans les détails mais les paramètres par défaut du code ne me convenant pas, j'ai bidouillé le code.
Le résultat ne pose pas de problème, apparemment je n'ai pas fait de grosse bêtise mais le logiciel me sort quand même ce message d'erreur après la génération de l'id :
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /homez.27/kaowarso/www/pmb/includes/gen_code/gen_code_exemplaire.php on line 8
Je me permets de vous mettre une copie de mon code bidouillé avec les éléments modifiés en rouge :
<?php
function init_gen_code_exemplaire($notice_id,$bull_id)
{
global $dbh;
$requete="select (expl_cb)as cb from exemplaires WHERE max(expl_id)";
$query = mysql_query($requete, $dbh);
if(mysql_num_rows($query)) {
if(($cb = mysql_fetch_object($query)))
$code_exemplaire= $cb->cb;
else $code_exemplaire = "0";
} else $code_exemplaire = "0";
return $code_exemplaire;
}
function gen_code_exemplaire($notice_id,$bull_id,$code_exemplaire)
{
$code_exemplaire++;
return $code_exemplaire;
}
et voici le code original :
<?php
function init_gen_code_exemplaire($notice_id,$bull_id)
{
global $dbh;
$requete="select max(expl_cb)as cb from exemplaires WHERE expl_cb like 'GEN%'";
$query = mysql_query($requete, $dbh);
if(mysql_num_rows($query)) {
if(($cb = mysql_fetch_object($query)))
$code_exemplaire= $cb->cb;
else $code_exemplaire = "GEN000000";
} else $code_exemplaire = "GEN000000";
return $code_exemplaire;
}
function gen_code_exemplaire($notice_id,$bull_id,$code_exemplaire)
{
$code_exemplaire++;
return $code_exemplaire;
}
un grand merci d'avance!
Dernière édition: 15/12/2010 @ 14:20:08
coquille et php
Publié le 15/12/2010 @ 13:31:29,
Par maxpour débuger et avoir le message d'erreur de MySQL:
echo mysql_errno($dbh) . ": " . mysql_error($dbh) . "\n";
A placer après le query
Dernière édition: 15/12/2010 @ 13:32:14
echo mysql_errno($dbh) . ": " . mysql_error($dbh) . "\n";
A placer après le query
Dernière édition: 15/12/2010 @ 13:32:14
Trololo
coquille et php
Publié le 15/12/2010 @ 13:32:42,
Par wangacoastj'ai essayé mais toujours la même erreur
coquille et php
Publié le 15/12/2010 @ 13:34:56,
Par zionajoute un echo(mysql_error()); après le mysql_query pour qu'on sache au moins quoi
Je suis le Roy
coquille et php
Publié le 15/12/2010 @ 13:35:02,
Par maxje me suis trompé, j'efface mon précedent message et je recommande:
ton WHERE max() n'est pas valide.
Tu ne peux pas utiliser ces fonctions dans une condition.
ton WHERE max() n'est pas valide.
Tu ne peux pas utiliser ces fonctions dans une condition.
Trololo
coquille et php
Publié le 15/12/2010 @ 13:35:13,
Par wangacoastok voilà : 1111: Invalid use of group function
coquille et php
Publié le 15/12/2010 @ 13:35:51,
Par zionEnfin, sans avoir l'erreur, ton WHERE est foireux.
$requete="select (expl_cb)as cb from exemplaires WHERE max(expl_id)";
max quoi, c'est pas bon du tout comme query... Tu veux faire quoi?
Dernière édition: 15/12/2010 @ 13:36:11
$requete="select (expl_cb)as cb from exemplaires WHERE max(expl_id)";
max quoi, c'est pas bon du tout comme query... Tu veux faire quoi?
Dernière édition: 15/12/2010 @ 13:36:11
Je suis le Roy
coquille et php
Publié le 15/12/2010 @ 13:38:02,
Par maxavoir les expli_cb dont la valeur expli_id est la plus haute ?
Trololo
coquille et php
Publié le 15/12/2010 @ 13:38:42,
Par wangacoastok alors en fait je lui demande de sélectionner la valeur expl_cb (dans une colonne de ma table sql) dont l'identifiant expl_id est le plus grand de la série. Comment devrais je m'y prendre à ton avis?
coquille et php
Publié le 15/12/2010 @ 13:40:49,
Par wangacoastsi je dis : where expl_id=max(expl_id) ?
coquille et php
Publié le 15/12/2010 @ 13:43:08,
Par maxpas de max() dans un where qu'on te dit
tu attends un seul résultat ?
select expl_cb from exemplaires order by expli_id desc limit 0,1;
ce n'est valable que si expli_id est unique et qu'il s'incrémente, si tu as plusieurs lignes qui ont le même expli_id, tu n'en aura q'un avec cette requête.
Dernière édition: 15/12/2010 @ 13:45:01
tu attends un seul résultat ?
select expl_cb from exemplaires order by expli_id desc limit 0,1;
ce n'est valable que si expli_id est unique et qu'il s'incrémente, si tu as plusieurs lignes qui ont le même expli_id, tu n'en aura q'un avec cette requête.
Dernière édition: 15/12/2010 @ 13:45:01
Trololo
coquille et php
Publié le 15/12/2010 @ 13:48:09,
Par wangacoasten fait il me faut le expl_cb. Je m'explique : la colonne expl_cb contient l'ensemble des id de mes bouquins. Seulement je ne peux pas prendre le MAX de expl_cb parce que l'on a engendré plein d'id avec des formats différents. Du coup, il ne sélectionne pas la bonne valeur maximale.
Heureusement chaque expl_cb est doté d'un identifiant contenu dans la colonne expl_id. Et donc forcément, le plus grand expl_id correspond au dernier expl_cb encodé. Je dois donc partir de ce dernier pour générer mes futurs id de livres.
Heureusement chaque expl_cb est doté d'un identifiant contenu dans la colonne expl_id. Et donc forcément, le plus grand expl_id correspond au dernier expl_cb encodé. Je dois donc partir de ce dernier pour générer mes futurs id de livres.
coquille et php
Publié le 15/12/2010 @ 13:56:16,
Par wangacoastça marche comme dirait Bourvil dans le jour le plus long merci beaucoup!