Rechercher une info dans une bdd, mais si elle n'existe pas
Résolu
emrh
Messages postés
439
Statut
Membre
-
emrh Messages postés 439 Statut Membre -
emrh Messages postés 439 Statut Membre -
Bonjour à tous,
J'essaie de rechercher dans une table la valeur maxi sur un champ 'facture' pour l'incrémenter de 1 et s'il la table est toute neuve (vide) la requête renvoie NULL, du coup je créé mon premier numéro de facture à 500...
Malheureusement, mon code ne fonctionne pas, il me renvoie 2 à l'exit alors que ma table est vide;
Pouvez-vous m'aider à trouver mon erreur ?
Merci d'avance !
J'essaie de rechercher dans une table la valeur maxi sur un champ 'facture' pour l'incrémenter de 1 et s'il la table est toute neuve (vide) la requête renvoie NULL, du coup je créé mon premier numéro de facture à 500...
Malheureusement, mon code ne fonctionne pas, il me renvoie 2 à l'exit alors que ma table est vide;
Pouvez-vous m'aider à trouver mon erreur ?
Merci d'avance !
// Connexion à la base de données :
require ("connexion.php");
// On commence par rechercher le dernier n° de facture dans la table "factures" :
$requete1 = $bdd->query('SELECT MAX(factures.facture) FROM factures');
$data = $requete1->fetch();
$num_fact = $requete1->rowCount();
// Si il n'y a pas de facture dans la table factures :
if($num_fact==NULL){
// On crée le 1°numéro :
$numero=500;
}
else {
// Un numéro de facture existe dans la table, on le récupère et on l'incrémente :
$numero = $num_fact + 1;
}
echo $numero;
exit;
Configuration: Linux / Chrome 99.0.4844.84
1 réponse
-
Bonjour,
Je ne suis pas un as en php, mais tester NULL dans tous les langages peut être particulier.
Sans garantie j'ai vu des syntaxes commeif is_null($result['column'])
Après tu pourrais solutionner la question dans mysql avec une syntaxe du typeSELECT IFNULL(MAX(factures.facture),500) FROM factures
-
Ta solution en sql est beaucoup plus simple !!!
Mille merci Jee Pee, ça fonctionne impec !
// Recherche du dernier n° de facture dans la table "factures" : // (si la table vient d'être créée, on commence au n° 500) $requete1 = $bdd->query('SELECT IFNULL(MAX(factures.facture),499) AS facture FROM factures'); $numero = $requete1->fetch(); $value = $numero['facture'] + 1; echo $value; exit;
-