Rechercher : dans
Par :

[PHP] variable non numérique -> numérique

Dernière réponse le 10 jui 2007 à 12:30:05 micom59, le 10 jui 2007 à 11:06:58 
 Signaler ce message aux modérateurs

Bonjour, j'ai un problee avec une liste déroulante dans un formulaire, avant cette liste me retournait une variable numérique, tout marché parfaitement. cela ressemblait a
<SELECT name="zone">
<OPTION VALUE="01">01</OPTION>
<OPTION VALUE="02">02</OPTION>
<OPTION VALUE="A03">A03</OPTION>...
</SELECT>
Maintenant on me demande d'ajouter des lettres devant la zone, j'ai donc cela
<SELECT name="zone">
<OPTION VALUE="A01">A01</OPTION>
<OPTION VALUE="A02">A02</OPTION>
<OPTION VALUE="A03">A03</OPTION>
</SELECT>

mais mon programme ne marche plus, quelqu'un du forum m'expliquant que ce n'était plus une variable numérique. Peut on faire croire a php que zone est numérique malgrés la présence de lettres dedans? sinon comment faire?

ajouter.php qui traitee mon formulaire se présente de cette maniere (l'erreur donnée est Champ 'A01' inconnu dans where clause)

<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=".$_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 $_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>

Configuration: Windows 2000
Internet Explorer 6.0

Meilleures réponses pour « [PHP] variable non numérique > numérique » dans :
PHP - Nettoyer une chaîne de caractères VoirVoici une fonction en PHP qui peut être assez pratique, surtout quand on fait de l'URL Rewriting. Cette fonction permet de transformer les caractères de n'importe quelle chaîne de caractères en chaîne non accentuée, en enlevant les caractères...
[PHP] Les ressemblances à ne pas confondre VoirIntroduction Concaténation ou paramètres ? Guillemets/Apostrophe Structure require/include isset vs empty htmlentities ou htmlspecialchars ? Nombre de signes égal Introduction Cette astuce présente plusieurs fonction ou astuces en...
PHP - Les variables VoirConcept de variable avec PHP Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage PHP peuvent être de trois...
PHP - Les variables d'environnement VoirNotion de variable d'environnement Les variables d'environnement sont, comme leur nom l'indique, des données stockées dans des variables permettant au programme d'avoir des informations sur son environnement. L'environnement, dans le cas du script...
PHP - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...

1

Jeff, le 10 jui 2007 à 11:14:40

Tu peux essayer la fonction PHP intval(), qui permet de transformer une variable en son équivalent numérique... Jeff - Wm@Ccm -

Répondre à Jeff

2

 micom59, le 10 jui 2007 à 12:30:05

En fait j'aimerais que A01 soit afficher dans mon tableau qui affiche ce qu'il y a dans ma base, du coup ca ne marche pas. sinon si je remet des 01, 02 tout ca, y a t'il un endroit ou je peux lui dire que 01=A01 pour que dans mon tableau soit affiché A01 au lieu de 01? j'ai essayé a plusieurs endroits mais je n'ai eu que des erreur. Je vous rapelle mes principaux programmes, ajouter.php et visu.php (qui permet de visualiser le tableau des données) :

ajouter.php

<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=".$_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 $_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>



visu.php


<html>
<head>
<title>Tableau général</title>
</head>
<body>
<BODY BGCOLOR=#33CCFF>
<img src="rexamlogo.gif" alt="1"><center><h1>Tableau général</h1></center>
<p>
<hr>
<a href="index.html">Retour</a><p>
<a href="visuparzone.php">Trier le tableau par zones</a><p>
<?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());


$select = 'SELECT * FROM article where quantite>0 order by article, zone';
$result = mysql_query($select,$link);
$total = mysql_num_rows($result);

echo "<h2><center><table width='250' border='1'><TR><TD>Article</TD><TD>Quantité</TD><TD>Zone</TD></TR></h2>\n";
while ($row = mysql_fetch_assoc($result))
{

echo "<h3><TR><TD>".$row['article']."</TD><TD>".$row['quantite']."</TD><TD>".$row['zone']."</TD></TR></h3>\n";

}

?>

</body>
</html>

Répondre à micom59
Collection CommentÇaMarche.net