Bonjour, je suis à la recherche du grain de sel .. des cerveaux aimables pour m'aider
J'ai un formulaire qui fonctionne, en ajout/supp/modif de données, tout marche parfaitement mais malgré cela j'ai des warnings
( ! ) Notice: Undefined variable: req in C:\wamp\www\clients.nlh\listing.php on line105
( ! )Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, null given in C:\wamp\www\clients.nlh\listing.php on line 105
, autrement dit la boucle while tout à la fin du code copié ci dessous.
La dernière fois que ça m'a fait ça c'était un pb de requête mais la tout s'inscrit correctement dans la BDD donc je ne comprends pas.
Ci dessous le listing.php :
et un extrait du fichier de services avec mes fonctions :
A plusieurs cerveaux nous avons cherché le pourquoi en vain..
La seule solution trouvé est sale: faire des req1 / req2 /req3 et dupliquer la boucle while dans chacune des conditions. Ca marche mais ca ne m'enchante pas de faire comme ça et surtout de ne pas comprendre d'où vient le pb.
Help please !
J'ai un formulaire qui fonctionne, en ajout/supp/modif de données, tout marche parfaitement mais malgré cela j'ai des warnings
( ! ) Notice: Undefined variable: req in C:\wamp\www\clients.nlh\listing.php on line105
( ! )Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, null given in C:\wamp\www\clients.nlh\listing.php on line 105
, autrement dit la boucle while tout à la fin du code copié ci dessous.
La dernière fois que ça m'a fait ça c'était un pb de requête mais la tout s'inscrit correctement dans la BDD donc je ne comprends pas.
Ci dessous le listing.php :
<section>
<form action="listing.php?action=rechercheClient" method="post">
<table class="globalForm">
<tr>
<td class="nomChamp">Recherche nom ou prénom</td>
<td></td>
</tr>
<tr>
<td><input type="text" name="recherche" id="recherche"/></td>
<td><input class="btnEnvoyer" type="submit" value="Rechercher"/>
</tr>
</table>
</form>
</section>
<section id="listeClient">
<?php
if(!empty($_GET['mess'])){
if($_GET['mess']=='add') {
echo'<p class="messageOk">Votre fiche est enregistrée, Merci.</p>';
}
if($_GET['mess']=='upd') {
echo'<p class="messageOk">Modifications enregistrées, Merci.</p>';
}
}
?>
<!-- LINSTING conditions -->
<?php
require_once("libs/connexion.php");
$alphabet = array();
for($i = 'A'; $i != 'AA'; $i++){
$alphabet[] = $i;
}
foreach($alphabet as $list){
echo '<a class="alpha" href="listing.php?tri='.$list.'">'.$list.'</a> ';
}
//si aucun GET n'est envoyé, donc qu'aucune recherche n'a été faite :
if(empty($_GET)){
$sql="SELECT * FROM clientes ORDER BY nom";
$req=mysqli_query($connexion, $sql);
}else{
//si une recherche est faite :
if(isset($_GET['action'])){
if($_GET['action']=='rechercheClient' && empty($_GET['tri'])){
$recherche= mysqli_real_escape_string($connexion, $_POST['recherche']);
$sql2="SELECT * FROM clientes WHERE nom LIKE '%$recherche%' OR prenom LIKE '%$recherche%' ORDER BY nom";
$req=mysqli_query($connexion, $sql2);
$nb_resultats = mysqli_num_rows($req);//fonction qui permet de comptabiliser le nb de resultat de ma requete sql
if($nb_resultats==0){
echo '<p class="messageError">Votre recherche n\'a rien donné. Veuillez réessayer.</p>';
}
}
}
//si sélection via pagination alphabetique
if(isset($_GET['tri']) && in_array($_GET['tri'], $alphabet)){
$tri = $_GET['tri'];
$sql3= "SELECT * FROM clientes WHERE nom LIKE '$tri%' ORDER BY nom";
$req = mysqli_query($connexion, $sql3);
}
}
//AFFICHAGE DE LA LISTE DES CLIENTES SELON LES CONDITIONS CI DESSUS :
echo '<table>';
echo "<tr>
<th>Nom</th>
<th>Prénom</th>
<th></th>
<th></th>
<th></th>
</tr>";
while($data=mysqli_fetch_assoc($req)){
echo '<tr>';
echo '<td class="liste">'.$data['nom'].'</td>';
echo '<td class="liste">'.$data['prenom'].'</td>';
echo '<td class="btn"><a href="fiche.php?nom='.$data['nom'].'&prenom='.$data['prenom'].'&datc='.$data['date_compte'].'&id='.$data['id'].'"><img src="img/voir.png"/></a></td>';
echo '<td class="btn"><a href="form.php?action=modifClient&id='.$data['id'].'&nom='.$data['nom'].'&prenom='.$data['prenom'].'&datc='.$data['date_compte'].'"><img src="img/modifier.png"/><a/></td>';
echo '<td class="btn"><a onclick="return check();" href="admin/libs/services.php?action=suppClient&id='.$data['id'].'"><img src="img/supprimer.png"/></a></td>';
echo '</tr>';
}
et un extrait du fichier de services avec mes fonctions :
function ajoutClient(){
global $connexion;
$nom = mysqli_real_escape_string($connexion,$_POST['nom']);
$prenom = mysqli_real_escape_string($connexion,$_POST['prenom']);
$jour = intval($_POST['jour']);
$mois = mysqli_real_escape_string($connexion,$_POST['mois']);
$tel = mysqli_real_escape_string($connexion,$_POST['tel']);
$mail = mysqli_real_escape_string($connexion,$_POST['mail']);
$date_compte = $_POST['date'];
$date = $_POST['date'];
$presta = mysqli_real_escape_string($connexion,$_POST['presta']);
$coiffeuse = $_POST['coiffeuse'];
$sql="INSERT INTO clientes (nom, prenom, jour, mois, tel, mail, date_compte) ";
$sql .="values('$nom', '$prenom', '$jour', '$mois', '$tel', '$mail', '$date_compte') ";
mysqli_query($connexion, $sql);
if($_POST['presta']!= NULL){
$sql2="INSERT INTO presta (id_clientes, date, nom, prenom, coiffeuse, presta) ";
$sql2 .="values(LAST_INSERT_ID(),'$date', '$nom', '$prenom', '$coiffeuse', '$presta') ";
mysqli_query($connexion, $sql2);
}
header("Location:../../listing.php?mess=add");
} //FIN function ajoutClient
function modifClient(){
global $connexion;
$nom = mysqli_real_escape_string($connexion,$_POST['nom']);
$prenom = mysqli_real_escape_string($connexion,$_POST['prenom']);
$jour = intval($_POST['jour']);
$mois = mysqli_real_escape_string($connexion,$_POST['mois']);
$tel = mysqli_real_escape_string($connexion,$_POST['tel']);
$mail = mysqli_real_escape_string($connexion,$_POST['mail']);
$date = $_POST['date'];
$presta = mysqli_real_escape_string($connexion,$_POST['presta']);
$id_clientes = $_POST['id_clientes'];
$coiffeuse = $_POST['coiffeuse'];
$sql="UPDATE clientes SET nom='$nom', prenom='$prenom', jour='$jour', mois='$mois', tel='$tel', mail='$mail' WHERE id=".$_GET['id'] ;
mysqli_query($connexion, $sql);
if($_POST['presta']!= NULL){
$sql2="INSERT INTO presta (date, nom, prenom, coiffeuse, presta, id_clientes) ";
$sql2 .="values('$date', '$nom', '$prenom', '$coiffeuse','$presta', '$id_clientes') ";
mysqli_query($connexion, $sql2);
}else{
$sql3="UPDATE presta SET nom='$nom', prenom='$prenom' WHERE id_clientes=".$_GET['id'] ;
mysqli_query($connexion, $sql3);
};
header("Location:../../listing.php?mess=upd");
}
A plusieurs cerveaux nous avons cherché le pourquoi en vain..
La seule solution trouvé est sale: faire des req1 / req2 /req3 et dupliquer la boucle while dans chacune des conditions. Ca marche mais ca ne m'enchante pas de faire comme ça et surtout de ne pas comprendre d'où vient le pb.
Help please !