[php] probleme avec option value
Fermé
micom59
Messages postés
71
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
11 août 2009
-
10 juil. 2007 à 09:08
pilou - 10 juil. 2007 à 14:35
pilou - 10 juil. 2007 à 14:35
A voir également:
- [php] probleme avec option value
- Option booster free avis - Accueil - Guide opérateurs et forfaits
- Easy php - Télécharger - Divers Web & Internet
- Option d'ergonomie - Guide
- Aucune option d'alimentation n'est actuellement disponible - Guide
- Option volte/vowifi - Guide
5 réponses
Je t'ai amélioré un peu tout ça ;)
<html> <body> <?php $host = 'localhost'; $user = 'root'; $pass = ''; $db = 'kael'; $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); mysql_select_db($db) or die ('Erreur :'.mysql_error()); $message = ''; if (is_numeric($_POST['article'])) { if (is_numeric($_POST['quantite'])) { $sql = "SELECT COUNT(*) FROM article WHERE article=". $_POST['article'] ." AND zone='". mysql_real_escape_string($_POST['zone']) ."'"; $result = mysql_query($sql) or die(mysql_error()); if( mysql_result($result, 0) == 1 ) { $update = mysql_query("UPDATE article SET quantite=quantite+".$_POST['quantite']." WHERE article=".$_POST['article']." AND zone='".mysql_real_escape_string($_POST['zone'])."'"); if( mysql_affected_rows == 1 ) { $message = 'quantité modifiée'; } else { $message = 'Aucune mise à jour effectuée'; } } else { $insert = mysql_query("INSERT INTO article VALUES(" . $_POST['article'] . ", " . $_POST['quantite'] . ", '" . mysql_real_escape_string($_POST['zone']) . "')"); if( mysql_affected_rows == 1 ) { $message = 'nouvel article correctement ajouté'; } else { $message = 'Problème lors de l\'insertion'; } } unset($_POST['article'],$_POST['zone'],$_POST['quantite']); } else { $message = "erreur, quantité non valide! Veuillez entrer des données numériques"; } } else { $message = "erreur, article non valide! Veuillez entrer des données numériques"; } ?> <BODY BGCOLOR=#33CCFF> <p> <?php echo $message ?> <a href="index.html">Accueil</a><p> <a href="formulaire.html">Ajouter un autre composant</a><p> <a href="visu.php">Visualisation générale</a><p> </body> </html>
micom59
Messages postés
71
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
11 août 2009
1
10 juil. 2007 à 09:31
10 juil. 2007 à 09:31
c'est bizarre qu'avec juste des chiffres ca passe niquel, mais qu'avec des A01 au lieu des 01 ca ne passe plus, ca ne retourne pas les lettres option value?
Ton problème vient du fait que $_POST['zone'] n'est plus numérique si tu y ajoutes A.
Pour mysql une chaine sans cotes designe un élément de la table, donc il va rechercher une colonne du nom de Ax qui n'existe pas.
En ajoutant des apostrophes ton problème ne sera plus.
Pour mysql une chaine sans cotes designe un élément de la table, donc il va rechercher une colonne du nom de Ax qui n'existe pas.
En ajoutant des apostrophes ton problème ne sera plus.
micom59
Messages postés
71
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
11 août 2009
1
10 juil. 2007 à 09:57
10 juil. 2007 à 09:57
ok! merci de t pencher sur mon probleme mais si j'ajoute des "" mon select devient
$sql = "SELECT * FROM article where article=".$_POST['article']." and zone=$_POST['zone']";
et j'ai donc une erreur
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\program files\easyphp1-8\www\ajouter.php on line 18
$sql = "SELECT * FROM article where article=".$_POST['article']." and zone=$_POST['zone']";
et j'ai donc une erreur
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\program files\easyphp1-8\www\ajouter.php on line 18
micom59
Messages postés
71
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
11 août 2009
1
10 juil. 2007 à 10:04
10 juil. 2007 à 10:04
enfin j'ai pas tout compris.. faut que je remplasse les $_POST['zone'] où c'est bien dans ajouter.php qu'il faut faire des modifications? pas dans le formulaire?
Non, c'est dans ta requête qu'il faut y mettre des apostrophes.
$sql = "SELECT * FROM article where article=". $_POST['article'] ." and zone='". mysql_real_escape_string($_POST['zone']) ."'";
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
micom59
Messages postés
71
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
11 août 2009
1
10 juil. 2007 à 13:36
10 juil. 2007 à 13:36
ok, merci ca fonctionne dans le tableau, a part que maintenant ca me donne un petit probleme, le update quand l'article et la zone correspondante quand l'article est deja présent dans la base ne s'effectue pas, que faut-il mettre a la place de $_POST['zone'] dans le if d'avant? j'ai essayer de remplacer par ce que tu m'as donné mais ca ne se fait pas non plus. Par contre ca écrit bien quantité modifiée..
Voici mon code si tu voit ou se situe le probleme.
Merci
<html>
<body>
<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'kael';
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
if (is_numeric($_POST['article']))
{
if (is_numeric($_POST['quantite']))
{
$sql = "SELECT * FROM article where article=". $_POST['article'] ." and zone='". mysql_real_escape_string($_POST['zone']) ."'";
$result = mysql_query($sql) or die(mysql_error());
$articles= mysql_fetch_array($result);
$article = $articles['article'];
$quantite = $articles['quantite'];
$zone = $articles['zone'];
if($_POST['article']==$article and mysql_real_escape_string($_POST['zone'])==$zone)
{
$quantite=$_POST['quantite']+$quantite;
mysql_query("UPDATE article SET quantite=".$quantite." where article=".$article." and zone=".$zone."");
echo "quantité modifiée";
}
else
{
mysql_query("INSERT INTO article VALUES('$_POST[article]','$_POST[quantite]','$_POST[zone]') ");
echo "Enregistrement effectué";
}
unset($_POST['article'],$_POST['zone'],$_POST['quantite'],$zone,$quantite,$article);
}
else {echo "erreur, quantité non valide! Veuillez entrer des données numériques";
}
}
else {
echo "erreur, article non valide! Veuillez entrer des données numériques";
}
?>
<BODY BGCOLOR=#33CCFF>
<p>
<a href="index.html">Accueil</a><p>
<a href="formulaire.html">Ajouter un autre composant</a><p>
<a href="visu.php">Visualisation générale</a><p>
</body>
</html>
Voici mon code si tu voit ou se situe le probleme.
Merci
<html>
<body>
<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'kael';
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
if (is_numeric($_POST['article']))
{
if (is_numeric($_POST['quantite']))
{
$sql = "SELECT * FROM article where article=". $_POST['article'] ." and zone='". mysql_real_escape_string($_POST['zone']) ."'";
$result = mysql_query($sql) or die(mysql_error());
$articles= mysql_fetch_array($result);
$article = $articles['article'];
$quantite = $articles['quantite'];
$zone = $articles['zone'];
if($_POST['article']==$article and mysql_real_escape_string($_POST['zone'])==$zone)
{
$quantite=$_POST['quantite']+$quantite;
mysql_query("UPDATE article SET quantite=".$quantite." where article=".$article." and zone=".$zone."");
echo "quantité modifiée";
}
else
{
mysql_query("INSERT INTO article VALUES('$_POST[article]','$_POST[quantite]','$_POST[zone]') ");
echo "Enregistrement effectué";
}
unset($_POST['article'],$_POST['zone'],$_POST['quantite'],$zone,$quantite,$article);
}
else {echo "erreur, quantité non valide! Veuillez entrer des données numériques";
}
}
else {
echo "erreur, article non valide! Veuillez entrer des données numériques";
}
?>
<BODY BGCOLOR=#33CCFF>
<p>
<a href="index.html">Accueil</a><p>
<a href="formulaire.html">Ajouter un autre composant</a><p>
<a href="visu.php">Visualisation générale</a><p>
</body>
</html>