|
rabia 19
| Posté : 20-04-2004 15:37
B onjour;
j'ai un pb avec l'instruction insert into; "mes programmes sont écrie en easyphp" tel que au moment de l'exécution du script les données son enregistre sur la base de données sauf quelque enregistrements qui sont supprime. Marci.
|  Profil
|
|
Tribal-Dolphin 4374
| Posté : 20-04-2004 15:54
ben moi j'en ai pas !
Plus sérieursement, sans ton code, je ne peut pas te dire que l'erreur et à la ligne 32 de add.php car tu à laisser trainer un delete. |  Profil
|
|
rabia 19
| Posté : 20-04-2004 16:39
Aprés l'exécuion de ce code quelque enregistrements sont supprime:
<?
!include!('sa.php');
echo "
cproduit | produit | quantite | date |
";
$fp = dbase_open("e:\\livraiso.dbf", 0);
$nr=dbase_numrecords($fp);
$i=1; $h=0;
for ($j=1;$j< $nr+1; $j++ )
{$liste = dbase_get_record($fp, $j);
$num=$liste[11][0].$liste[11][1].$liste[11][2].$liste[11][3];
if("$num"=='0194')
{
$prod[$h][0]=$liste[3];
$prod[$h][1]=$liste[11];
$prod[$h][2]=$liste[6];
$prod[$h][3]=$liste[1];
$prod[$h][4]=$liste[4];
$h++;
}
}
dbase_close ($fp);
/*******************************/
$nr1=count($prod);
$acha[0]=$prod[0];
$k=1;
for ($j=1;$j<$nr1+1; $j++ )
{ $qnt=0;
$val=false;
$pro=$prod[$j][0];
$numlot=$prod[$j][4];
for($i=0;$i<$k;$i++)
{ if ($pro==$acha[$i][0] and $numlot==$acha[$i][4])
{$val=true;$acha[$i][2]=$acha[$i][2]+$prod[$j][2];}
}
if (!$val)
{
$acha[$k]=$prod[$j];
$k++;
}}
$tail=count($acha);
print $tail;
for($k=0;$k<=$tail;$k++)
{ $a=$acha[$k][0];
$b=$acha[$k][1];
$c=$acha[$k][3];
$h=$acha[$k][4];
$qnt=$acha[$k][2];
$query = "INSERT INTO live VALUES( '$a', '$b',$qnt, '$c', '$h' )" ;
$result= MYSQL_QUERY($query);
echo "
$a |
$h |
$qnt |
$c |
$b |
";
}
echo " ";
mysql_close()
?>
le code de sa.php
<? //création d'une base de données
$link = mysql_connect ("localhost", "sassi", "amina");
mysql_create_db ("snc");
$query=mysql_select_db("snc");
$requet="CREATE TABLE live ( cprod char(8) not null, num_fact char(20) not null, qnt int not null, dat date not null, numlot char(11) not null, primary key(cprod, numlot))";
mysql_query($requet,$link);
$result= MYSQL_QUERY($query);
?>
merci; |  Profil
|
|
Tribal-Dolphin 4374
| Posté : 20-04-2004 18:14
D'après ce qe je lis, tu crée la base et tu envoie des données.
tes données viennent d'un Dbase.
Tes données DBase correspondent t'elle aux définitions de la base MySQL ? |  Profil
|
|
rabia 19
| Posté : 21-04-2004 09:42
bonjour;
je ne compent pas votre question, si votre question concernent les types de les deux base la reponce est oui; les type des variable sont identiques. |  Profil
|
|
Tribal-Dolphin 4374
| Posté : 21-04-2004 12:03
Je crois avoir le soucis : primary key(cprod, numlot).
c pas possible ça. Tu peut avoir une seule clé primaire mais plusieurs index. |  Profil
|
|
rabia 19
| Posté : 21-04-2004 15:29
merci; j'ai changer le primari key comme suit:
$requet="CREATE TABLE live3 ( code int not null, cprod char(8) not null, num_fact char(20) not null, qnt int not null, dat date not null, numlot char(11) not null, primary key(code))"; telque code est le compteur du tableau ($k) mais qu'eele est la différence entre index et primary key?. |  Profil
|
|
Tribal-Dolphin 4374
| Posté : 21-04-2004 15:46
La primary key et la clé primaire. C une clé unique et autoincrémenté la plupart du temps.
Un index c un moyen de grouper un ou plusieurs champs en un seul et de les indexer pour que les recherches soit plus rapides. |  Profil
|
|
rabia 19
| Posté : 21-04-2004 17:28
merci merci pour votre aide.
Salutation distingue pour vous. |  Profil
|
|