Rechercher une info dans une bdd, mais si elle n'existe pas

Résolu/Fermé
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 - Modifié le 6 avril 2022 à 09:56
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 - 7 avril 2022 à 13:49
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 !

// 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
A voir également:

1 réponse

jee pee Messages postés 39696 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 7 mai 2024 9 258
Modifié le 6 avril 2022 à 10:58
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 comme
if is_null($result['column'])


Après tu pourrais solutionner la question dans mysql avec une syntaxe du type
SELECT IFNULL(MAX(factures.facture),500) FROM factures




1
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20
Modifié le 6 avril 2022 à 13:44
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;

0
jee pee Messages postés 39696 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 7 mai 2024 9 258 > emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024
6 avril 2022 à 14:12
Tu peux même pousser à faire le +1 dans le sql ;-)
1
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20 > jee pee Messages postés 39696 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 7 mai 2024
7 avril 2022 à 13:49
Grâce aux membres de ce forum, j'ai appris en quelques jours d'intervalle à faire des sous-requêtes, des alias, des requêtes jointes et grâce à toi, des requêtes avec des conditions !
Merci beaucoup !
0