erreur ds mon scripte

Invité
Invité n'ayant pas de compte PHPfrance

05 avr. 2006, 16:37

j'ai pb avec une req et je sait pas sa vien d'ou? help me plz

  <? 
  for($i=1;$i<=$QTCOLC;++$i)
  	if (
 //je test si un chemps  est vide pour fair une update //		
			(${"NUMERO_INVENTAIRE".$i}!="") or
			(${"DATE_DE_LIVRAISON".$i}!="") or
			(${"SERVICE_DE_MAINT".$i}!="") or
			(${"UF_LOCALISATION".$i}!="") or
			(${"Site_E_ou_V".$i}!="") or
			(${"BATIMENT".$i}!="") or
			(${"ETAGE".$i}!="") or
			(${"PIECE".$i}!="") or 
			(${"LIBELE_LIBRE".$i}!="") )
{
$miseajour ="update INVENTAIRE set  
 NUMERO_INVENTAIRE = '${"NUMERO_INVENTAIRE".$i}', 
  DATE_LIVRAISON = '${"DATE_DE_LIVRAISON".$i}',
  SERVICE_MAINTENANCE='${"SERVICE_DE_MAINT".$i}', 
  UF_LOCALISATION = '${"UF_LOCALISATION".$i}', 
  SITE= '${"Site_E_ou_V".$i}',
  BATIMENT='${"BATIMENT".$i}', 
  ETAGE='${"ETAGE".$i}', 
  PIECE='${"PIECE".$i}', 
  COMMENTAIRE= '${"LIBELE_LIBRE".$i}' 
 where 
 NUMERO_COMMANDE='$nucoco' and
 NUMERO_LIGNECOMMANDE='$nulglc' and
 NUMERO_MATERIEL='$i'";
$result = ora_parse($cursor,$miseajour);
$result = ora_exec ($cursor);
ora_commit($ora_conn); 	
}
else  {
print("<br>"); 
print("$QTCOLC"); 
 $sql="INSERT INTO INVENTAIRE 
 (NUMERO_COMMANDE,
  NUMERO_LIGNECOMMANDE, 
  NUMERO_MATERIEL, 
  NUMERO_INVENTAIRE, 
  DATE_LIVRAISON, 
  SERVICE_MAINTENANCE, 
  UF_LOCALISATION, 
  SITE,
  BATIMENT, 
  ETAGE, 
  PIECE, 
  COMMENTAIRE) 
 VALUES (
 '$nucoco',
 '$nulglc',
 '${"NUMERO_MATERIEL".$i}',
 '${"NUMERO_INVENTAIRE".$i}',
 '${"DATE_DE_LIVRAISON".$i}',
 '${"SERVICE_DE_MAINT".$i}',
 '${"UF_LOCALISATION".$i}',
 '${"Site_E_ou_V".$i}', 
 '${"BATIMENT".$i}',
 '${"ETAGE".$i}',
 '${"PIECE".$i}',
 '${"LIBELE_LIBRE".$i}')";
	$result = ora_parse($cursor, $sql);
	$result = ora_exec ($cursor);
ora_commit($ora_conn); 	
	
	}

Eléphant du PHP | 451 Messages

05 avr. 2006, 16:46

C'est quoi le problème ?
INSERT ?
UPDATE ?
Les 2 ?
Il y a une erreur ?

On est pas devins tu sais ?
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)

Invité
Invité n'ayant pas de compte PHPfrance

05 avr. 2006, 16:58

les 2 ni l'insert ni l'update marche

Eléphant du PHP | 451 Messages

05 avr. 2006, 17:01

Je pense que le problème c'est que même si tous les champs sont vides tu fais un update...
Remplace les or par des and et inverse update et insert...

Hum j'ai peut être répondu un peu vite, je ne comprends pas ton algo...
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)

Invité
Invité n'ayant pas de compte PHPfrance

05 avr. 2006, 17:31

sa marche pas :( :(

Invité
Invité n'ayant pas de compte PHPfrance

05 avr. 2006, 17:39

voila l'erreur que j'ai
Warning: Ora_Exec failed (ORA-01858: a non-numeric character was found where a numeric was expected -- while processing OCI function OEXEC/OEXN) in c:\program files\easyphp1-8\www\invent.php on line 179
les line178 et179:
$result = ora_parse($cursor,$miseajour);
$result = ora_exec ($cursor);

Invité
Invité n'ayant pas de compte PHPfrance

05 avr. 2006, 17:59

peux être le OR qui fonction pas quelqu’un connaît l'équivalant pour php

Invité
Invité n'ayant pas de compte PHPfrance

06 avr. 2006, 15:16

:( :( :( :( :( :( :roll: :roll: :roll: :roll: :( :( :( :(
help me plz

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

06 avr. 2006, 15:29

Est-ce que tu as essayé d'afficher les requetes générées ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

06 avr. 2006, 15:31

oui et voila l'erreur que j'ai
Warning: Ora_Exec failed (ORA-01858: a non-numeric character was found where a numeric was expected -- while processing OCI function OEXEC/OEXN) in c:\program files\easyphp1-8\www\invent.php on line 179

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

06 avr. 2006, 15:41

Et est ce que tu as essayé de corriger en fonction du message d'erreur ? :)
a non-numeric character was found where a numeric was expected
Un caractère non numéric a été trouvé alors qu'un caractère numérique était attendu...

Vu que tu as collé des apostrophes autour de toutes tes valeurs, ils seront tous considérés comme des chaines de caractères... du coup si en base, c'est un nombre qui est entendu, ça plante... Aller comme ça a vue de nez tous tes champs NUMERO_ quelque chose sont en cause ;)

MySql tolère les apostrophes sur les numériques et gère la conversion lorsque l'on se trompe, mais à ma connaissance, c'est bien seul qui le fasse. Et c'est de toute façon une très mauvaise habitude à perdre d'urgence :)

Invité
Invité n'ayant pas de compte PHPfrance

06 avr. 2006, 15:45

non par ce que tout mes champ sont de type varchar alor c pas possible :(

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

06 avr. 2006, 15:46

Je t'ai pas demandé si tu avais exécuté les requetes mais si tu les avait affichées

Je veux juste voir ce qui est envoyé à Oracle
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

06 avr. 2006, 15:48

rien !!!!!!!!!!!!!
rien ne passe au niveau de la basse de donneé oracle

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

06 avr. 2006, 15:52

rien !!!!!!!!!!!!!
rien ne passe au niveau de la basse de donneé oracle
Et cela t'empêche d'afficher les requêtes et de les poster ici ?
echo $miseajour;
echo $sql;
non par ce que tout mes champ sont de type varchar alor c pas possible :(
no comment...