Problème PHP MySQL Update
catcher41
-
catcher41 -
catcher41 -
Bonjour,
Voila je débute en PHP/MySQL jusqu'à présent je me débrouillais grâce à ce forum et aux personnes qui fessaient des erreurs semblable aux miennes...
Mais làje bloquel :
Le but de cette page et de faire un lexique intéractif : où l'on peut supprimer,rechercher, modifier et ajouter des pages,j'arrive à les créer, je n'ai pas encore attaqué la suppression ni la recherche car j'arrive à modifier cependant une fois la donnée modifiée impossible de la modifier de nouveau, je me retrouve avec une page vide, et mon petit test(else pour modifier) m'indique que la value modifier est vide dès lors qu'une modification à eu lieux, pourquoi?
C'est pas très clair je peux vous apporter plus e précision si vous le souhaité...
Voici le code malheuresement assez long car sur une même page afin d'être intégré à un site déjà existant :
<?php
$log = $_SERVER['REMOTE_ADDR'].' vient de se connecter au site.';
require ('./pages/log.php');
?>
<form name="searchMain" action="recherche.php" method="get">
<fieldset class="clearfix">
<label for="searchField">Rechercher</label>
<input type="text" id="searchField" name="recherche" maxlength="64" value="" />
<select name="voirtout" id="searchOptions">
<option value="">Partout</option>
<option value="nom">Nom</option>
<option value="description">Description</option>
<option value="complementaire">Complémentaire</option>
<option value="commandes">Commandes</option>
<option value="createur">Créateur</option>
</select>
<input type="submit" />
<a href="?page=lexique&nouvelle=ok" >
nouvelle note
</a>
</fieldset>
</form>
<table width="100%">
<tr height=25>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=a" >
A
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=b" >
B
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=c" >
C
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=d" >
D
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=e" >
E
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=f" >
F
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=g" >
G
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=h" >
H
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=i" >
I
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=j" >
J
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=k" >
K
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=l" >
L
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=m" >
M
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=n" >
N
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=o" >
O
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=p" >
P
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=q" >
Q
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=r" >
R
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=s" >
S
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=t" >
T
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=u" >
U
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=v" >
V
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=w" >
W
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=x" >
X
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=y" >
Y
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=z" >
Z
</a>
</td>
</tr>
</table>
<br>
<?php
if (!empty($_GET['lettre'])){//si la variable lettre n'est pas vide alors il se passe ceci :
$lettre = $_GET['lettre'];
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("test"); // Sélection de la base lexi
// On est connectés, on peut travailler sur la BDD
$reponse = mysql_query("SELECT nom FROM lexi WHERE nom LIKE '$lettre%' ORDER by nom")
or die("Erreur SQL : $query<br/>".mysql_error());; // Requête SQL
// Avec cette boucle, on liste uniquement le nom du lexi :
while ($donnees = mysql_fetch_array($reponse) )
{
echo '<a href="?page=lexique¬e='.$donnees['nom'].'" >';
echo $donnees['nom'];
echo '</a>';
echo "<br />";
}
// On a fini de travailler, on ferme la connexion :
mysql_close(); // Déconnexion de MySQL
}
if (!empty($_GET['note'])){//si la variable note n'est pas vide alors il se passe ceci :
$note = $_GET['note'];
echo "$note";echo "<br>";
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("test"); // Sélection de la base lexi
// On est connectés, on peut travailler sur la BDD
$reponse = mysql_query("SELECT * FROM lexi WHERE nom LIKE '$note'")or die("Erreur SQL : $query<br/>".mysql_error());; // Requête SQL
// Avec cette boucle, on liste uniquement le nom du lexi :
while ($donnees = mysql_fetch_array($reponse) )
{
echo 'description : ' ;
echo $donnees['description'];echo "<br>";
echo 'complementaire : ' ;
echo $donnees['complementaire'];echo "<br>";
echo 'commande : ' ;
echo $donnees['commande'];echo "<br>";
}
// On a fini de travailler, on ferme la connexion :
mysql_close(); // Déconnexion de MySQL
echo '<a href="?page=lexique&modifier=ok&n=';
echo $note;
echo'" >modifier note</a>';
}
if (!empty($_GET['nouvelle'])){//si la variable nouvelle n'est pas vide alors il se passe ceci :
echo'<form method="post" action="?page=lexique&ajouter=ok.php">
<label for="nom">Nom de la note : </label>
<input type="text" name="nom" id="nom" /><br />
<label for="description">Description : </label><br />
<textarea name="description" id="description" cols="60" rows="4" ></textarea><br />
<label for="complementaire">Complementaire : </label><br />
<textarea name="complementaire" id="complementaire" cols="60" rows="4" ></textarea><br />
<label for="commande">Commande associées : </label><br />
<textarea name="commande" id="commande" cols="60" rows="4" ></textarea><br />
<input type="submit" value="Ajouter" />
</form>';
}
if (!empty($_GET['ajouter'])){//si la variable ajouter n'est pas vide alors il se passe ceci :
$nom = $_POST['nom'];
$description = $_POST['description'];
$complementaire = $_POST['complementaire'];
$commande = $_POST['commande'];
$createur = $_SESSION['membre_qdg'];
$jour = date("d");
$mois = date("m");
$annee = date("Y");
mysql_connect("localhost", "root", "");
mysql_select_db("test");
// On ajoute une entrée avec mysql_query
mysql_query("INSERT INTO lexi VALUES('', '$nom', '$description',
'$complementaire', '$annee-$mois-$jour', '$annee-$mois-$jour',
'$commande', '$createur')")or die("Erreur SQL : $query<br/>".mysql_error());;
mysql_query("UPDATE lexi SET nom = UPPER(nom)")
or die("Erreur SQL : $query<br/>".mysql_error());;
mysql_close();
echo "Vous venez de creer la nouvelle note : ";echo "$nom";echo "<br />";
echo "description : ";echo "$description";echo "<br />";
echo "complementaire : ";echo "$complementaire";echo "<br />";
echo "commande : ";echo "$commande";echo "<br />";
}
if (!empty($_GET['modifier'])){//si la variable modifier n'est pas vide alors il se passe ceci :
$note = $_GET['n'];
mysql_connect("localhost", "root", "");
mysql_select_db("test");
$nom = mysql_query("SELECT * FROM lexi WHERE nom LIKE '$note'");
while ($data = mysql_fetch_array($nom)){
echo'<form method="post" action="?page=lexique&retoucher=ok¬e2=';
echo $note ;
echo '">
<label for="nom">Nom de la note : </label><br />
<textarea name="nom" id="nom" cols="30" rows="1" >';
echo $data['nom'];
echo ' </textarea><br />
<label for="description">Description : </label><br />
<textarea name="description" id="description" cols="60" rows="4" >';
echo $data['description'];
echo' </textarea><br />
<label for="complementaire">Complementaire : </label><br />
<textarea name="complementaire" id="complementaire" cols="60" rows="4" >';
echo $data['complementaire'];
echo ' </textarea><br />
<label for="commande">Commande associées : </label><br />
<textarea name="commande" id="commande" cols="60" rows="4" >';
echo $data['commande'];
echo ' </textarea><br />
<input type="submit" value="Modifier" />
</form>';
}
mysql_close();
}else{ echo "pas de modif" ;}
if (!empty($_GET['retoucher'])){//si la variable retoucher n'est pas vide alors il se passe ceci :
$note2 = $_GET['note2'];
$nom = $_POST['nom'];
$description = $_POST['description'];
$complementaire = $_POST['complementaire'];
$commande = $_POST['commande'];
mysql_connect("localhost", "root", "");
mysql_select_db("test");
mysql_query("UPDATE lexi SET nom ='$nom', description='$description',
complementaire='$complementaire', commande='$commande'
WHERE nom='$note2'")or die("Erreur SQL : $query<br/>".mysql_error());
mysql_query("UPDATE lexi SET nom = UPPER(nom)")
or die("Erreur SQL : $query<br/>".mysql_error());;
echo "note ";
echo $nom;
echo " modifiée";
mysql_close();
}
?>
merci d'avance...+++
Voila je débute en PHP/MySQL jusqu'à présent je me débrouillais grâce à ce forum et aux personnes qui fessaient des erreurs semblable aux miennes...
Mais làje bloquel :
Le but de cette page et de faire un lexique intéractif : où l'on peut supprimer,rechercher, modifier et ajouter des pages,j'arrive à les créer, je n'ai pas encore attaqué la suppression ni la recherche car j'arrive à modifier cependant une fois la donnée modifiée impossible de la modifier de nouveau, je me retrouve avec une page vide, et mon petit test(else pour modifier) m'indique que la value modifier est vide dès lors qu'une modification à eu lieux, pourquoi?
C'est pas très clair je peux vous apporter plus e précision si vous le souhaité...
Voici le code malheuresement assez long car sur une même page afin d'être intégré à un site déjà existant :
<?php
$log = $_SERVER['REMOTE_ADDR'].' vient de se connecter au site.';
require ('./pages/log.php');
?>
<form name="searchMain" action="recherche.php" method="get">
<fieldset class="clearfix">
<label for="searchField">Rechercher</label>
<input type="text" id="searchField" name="recherche" maxlength="64" value="" />
<select name="voirtout" id="searchOptions">
<option value="">Partout</option>
<option value="nom">Nom</option>
<option value="description">Description</option>
<option value="complementaire">Complémentaire</option>
<option value="commandes">Commandes</option>
<option value="createur">Créateur</option>
</select>
<input type="submit" />
<a href="?page=lexique&nouvelle=ok" >
nouvelle note
</a>
</fieldset>
</form>
<table width="100%">
<tr height=25>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=a" >
A
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=b" >
B
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=c" >
C
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=d" >
D
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=e" >
E
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=f" >
F
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=g" >
G
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=h" >
H
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=i" >
I
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=j" >
J
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=k" >
K
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=l" >
L
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=m" >
M
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=n" >
N
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=o" >
O
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=p" >
P
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=q" >
Q
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=r" >
R
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=s" >
S
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=t" >
T
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=u" >
U
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=v" >
V
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=w" >
W
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=x" >
X
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=y" >
Y
</a>
</td>
<td align="center" valign="bottom">
<a href="?page=lexique&lettre=z" >
Z
</a>
</td>
</tr>
</table>
<br>
<?php
if (!empty($_GET['lettre'])){//si la variable lettre n'est pas vide alors il se passe ceci :
$lettre = $_GET['lettre'];
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("test"); // Sélection de la base lexi
// On est connectés, on peut travailler sur la BDD
$reponse = mysql_query("SELECT nom FROM lexi WHERE nom LIKE '$lettre%' ORDER by nom")
or die("Erreur SQL : $query<br/>".mysql_error());; // Requête SQL
// Avec cette boucle, on liste uniquement le nom du lexi :
while ($donnees = mysql_fetch_array($reponse) )
{
echo '<a href="?page=lexique¬e='.$donnees['nom'].'" >';
echo $donnees['nom'];
echo '</a>';
echo "<br />";
}
// On a fini de travailler, on ferme la connexion :
mysql_close(); // Déconnexion de MySQL
}
if (!empty($_GET['note'])){//si la variable note n'est pas vide alors il se passe ceci :
$note = $_GET['note'];
echo "$note";echo "<br>";
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("test"); // Sélection de la base lexi
// On est connectés, on peut travailler sur la BDD
$reponse = mysql_query("SELECT * FROM lexi WHERE nom LIKE '$note'")or die("Erreur SQL : $query<br/>".mysql_error());; // Requête SQL
// Avec cette boucle, on liste uniquement le nom du lexi :
while ($donnees = mysql_fetch_array($reponse) )
{
echo 'description : ' ;
echo $donnees['description'];echo "<br>";
echo 'complementaire : ' ;
echo $donnees['complementaire'];echo "<br>";
echo 'commande : ' ;
echo $donnees['commande'];echo "<br>";
}
// On a fini de travailler, on ferme la connexion :
mysql_close(); // Déconnexion de MySQL
echo '<a href="?page=lexique&modifier=ok&n=';
echo $note;
echo'" >modifier note</a>';
}
if (!empty($_GET['nouvelle'])){//si la variable nouvelle n'est pas vide alors il se passe ceci :
echo'<form method="post" action="?page=lexique&ajouter=ok.php">
<label for="nom">Nom de la note : </label>
<input type="text" name="nom" id="nom" /><br />
<label for="description">Description : </label><br />
<textarea name="description" id="description" cols="60" rows="4" ></textarea><br />
<label for="complementaire">Complementaire : </label><br />
<textarea name="complementaire" id="complementaire" cols="60" rows="4" ></textarea><br />
<label for="commande">Commande associées : </label><br />
<textarea name="commande" id="commande" cols="60" rows="4" ></textarea><br />
<input type="submit" value="Ajouter" />
</form>';
}
if (!empty($_GET['ajouter'])){//si la variable ajouter n'est pas vide alors il se passe ceci :
$nom = $_POST['nom'];
$description = $_POST['description'];
$complementaire = $_POST['complementaire'];
$commande = $_POST['commande'];
$createur = $_SESSION['membre_qdg'];
$jour = date("d");
$mois = date("m");
$annee = date("Y");
mysql_connect("localhost", "root", "");
mysql_select_db("test");
// On ajoute une entrée avec mysql_query
mysql_query("INSERT INTO lexi VALUES('', '$nom', '$description',
'$complementaire', '$annee-$mois-$jour', '$annee-$mois-$jour',
'$commande', '$createur')")or die("Erreur SQL : $query<br/>".mysql_error());;
mysql_query("UPDATE lexi SET nom = UPPER(nom)")
or die("Erreur SQL : $query<br/>".mysql_error());;
mysql_close();
echo "Vous venez de creer la nouvelle note : ";echo "$nom";echo "<br />";
echo "description : ";echo "$description";echo "<br />";
echo "complementaire : ";echo "$complementaire";echo "<br />";
echo "commande : ";echo "$commande";echo "<br />";
}
if (!empty($_GET['modifier'])){//si la variable modifier n'est pas vide alors il se passe ceci :
$note = $_GET['n'];
mysql_connect("localhost", "root", "");
mysql_select_db("test");
$nom = mysql_query("SELECT * FROM lexi WHERE nom LIKE '$note'");
while ($data = mysql_fetch_array($nom)){
echo'<form method="post" action="?page=lexique&retoucher=ok¬e2=';
echo $note ;
echo '">
<label for="nom">Nom de la note : </label><br />
<textarea name="nom" id="nom" cols="30" rows="1" >';
echo $data['nom'];
echo ' </textarea><br />
<label for="description">Description : </label><br />
<textarea name="description" id="description" cols="60" rows="4" >';
echo $data['description'];
echo' </textarea><br />
<label for="complementaire">Complementaire : </label><br />
<textarea name="complementaire" id="complementaire" cols="60" rows="4" >';
echo $data['complementaire'];
echo ' </textarea><br />
<label for="commande">Commande associées : </label><br />
<textarea name="commande" id="commande" cols="60" rows="4" >';
echo $data['commande'];
echo ' </textarea><br />
<input type="submit" value="Modifier" />
</form>';
}
mysql_close();
}else{ echo "pas de modif" ;}
if (!empty($_GET['retoucher'])){//si la variable retoucher n'est pas vide alors il se passe ceci :
$note2 = $_GET['note2'];
$nom = $_POST['nom'];
$description = $_POST['description'];
$complementaire = $_POST['complementaire'];
$commande = $_POST['commande'];
mysql_connect("localhost", "root", "");
mysql_select_db("test");
mysql_query("UPDATE lexi SET nom ='$nom', description='$description',
complementaire='$complementaire', commande='$commande'
WHERE nom='$note2'")or die("Erreur SQL : $query<br/>".mysql_error());
mysql_query("UPDATE lexi SET nom = UPPER(nom)")
or die("Erreur SQL : $query<br/>".mysql_error());;
echo "note ";
echo $nom;
echo " modifiée";
mysql_close();
}
?>
merci d'avance...+++
A voir également:
- Problème PHP MySQL Update
- Windows update bloqué - Guide
- Winget update - Guide
- Asus live update - Télécharger - Utilitaires
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
3 réponses
bonjour,
le code est effectivement long, tu aurais pu le réduire un peu en ne donnant que ce qui ne va pas.
cette ligne me semble fausse :
mysql_query("UPDATE lexi SET nom = UPPER(nom)")
$nom ne serait-il pas plus juste ?
--
le code est effectivement long, tu aurais pu le réduire un peu en ne donnant que ce qui ne va pas.
cette ligne me semble fausse :
mysql_query("UPDATE lexi SET nom = UPPER(nom)")
$nom ne serait-il pas plus juste ?
--
En effet j'ai obtimisé le code en mettant
mysql_query("UPDATE lexi SET nom = UPPER('$nom') WHERE nom = '$nom'")
au lieu de
mysql_query("UPDATE lexi SET nom = UPPER(nom))
mais mon problème est toujours là.Ce qui est étrange c'est que dans la base de donnée tous se passe bien, les modifications sont bien prise en compte et le message "pas de modif ne s'affiche plus" ( bon point), mais j'ai une page blanche là ou je devrai avoir mon formulaire...
Je continue à chercher si quelqu'un vois autre chose je suis preneur ^^
mysql_query("UPDATE lexi SET nom = UPPER('$nom') WHERE nom = '$nom'")
au lieu de
mysql_query("UPDATE lexi SET nom = UPPER(nom))
mais mon problème est toujours là.Ce qui est étrange c'est que dans la base de donnée tous se passe bien, les modifications sont bien prise en compte et le message "pas de modif ne s'affiche plus" ( bon point), mais j'ai une page blanche là ou je devrai avoir mon formulaire...
Je continue à chercher si quelqu'un vois autre chose je suis preneur ^^
Bonsoir, problème résolu...
Le soucis à l'air de venir de l'utilisation du LIKE à la place du = dans MySQL
$nom = mysql_query("SELECT * FROM lexi WHERE nom LIKE '$note'");
en
$nom = mysql_query("SELECT * FROM lexi WHERE nom = '$note'");
Mais pourquoi marche t-il une fois mais pas deux, grand mystère...
Si quelqu'un à la réponse, je la veux!
Merci encore.
Le soucis à l'air de venir de l'utilisation du LIKE à la place du = dans MySQL
$nom = mysql_query("SELECT * FROM lexi WHERE nom LIKE '$note'");
en
$nom = mysql_query("SELECT * FROM lexi WHERE nom = '$note'");
Mais pourquoi marche t-il une fois mais pas deux, grand mystère...
Si quelqu'un à la réponse, je la veux!
Merci encore.
Bonsoir,
tous les test que je fais avec l'une ou l'autre des syntaxes suivantes :
$nom = mysql_query("SELECT * FROM lexi WHERE nom LIKE '$note'");
$nom = mysql_query("SELECT * FROM lexi WHERE nom = '$note'");
donnent les mêmes résultats.
le like peut donner des réponse différentes si on y ajoute % là où il faut.
reste aussi à voir si note est en caractère ou en numérique, si 10.00 ou 10 ?
--
tous les test que je fais avec l'une ou l'autre des syntaxes suivantes :
$nom = mysql_query("SELECT * FROM lexi WHERE nom LIKE '$note'");
$nom = mysql_query("SELECT * FROM lexi WHERE nom = '$note'");
donnent les mêmes résultats.
le like peut donner des réponse différentes si on y ajoute % là où il faut.
reste aussi à voir si note est en caractère ou en numérique, si 10.00 ou 10 ?
--