Riposto su questa discussione in quanto sto tentando di articolare maggiormente il lavoro che mi hai passato.
La registrazione degli ordini è ok...Adesso mi sono accorto della mancanza di una variabile mancante...ossia la Quantità degli elementi che si ordinano.
Che si deve incrementare ogni volta che aggiungo e diminuire ogni volta che tolgo (con annessa condizione che se arriva la quantità a zero si deve eliminare l'oggetto)
Adesso con la tua struttura di scrittura sul mio file carrello come posso controllare se il file è già presente nel carrello e se presente aumentare di uno la quantità oppure se non presente aggiungerlo. (ho capito che si deve mettere un foreach ma non riesco a determinare le variabili da far scorrere)
Codice PHP:
foreach($xml->children() as $utente){
if($utente->attributes()->id == $_SESSION['utent']){
$elemento = $utente;
break;
}
}
if(!$elemento){
$elemento = $xml->addChild('utente');
$elemento->addAttribute('id',$_SESSION['utent']);
}
foreach($elemento-> .....
$p = $elemento->addChild('elemento');
$p->addChild('quantità',);
$p->addChild('nome',$_POST['nume']);
$p->addChild('costo',$_POST['custo']);
$p->addChild('tipo',$_POST['tupo']);
$xml->asXML('carrello.xml');
(una volta risolto il controllo posso implementare anche la struttura di eliminazione che ho già pronta...)
-
ho tentato con questo pezzo di codice ma non riesco ad uscirne...
Codice PHP:
$f=0;
foreach($xml->children() as $utente){
if($utente->attributes()->id == $_SESSION['utent']){
$elemento = $utente;
break;
}
}
if(!$elemento){
$elemento = $xml->addChild('utente');
$elemento->addAttribute('id',$_SESSION['utent']);
}
foreach($xml->children() as $utente){
if($utente->attributes()->id == $_SESSION['utent']){
foreach($utente->elemento as $elemento){
if (($elemento->nome==$_POST['nume'])&&($elemento->costo==$_POST['custo'])&&($elemento->tipo==$_POST['tupo'])){
echo "Articolo già presente lo incrementeremo!!<br>";
$o=$elemento->quantità;
$o++;
$elemento->quantità=$o;
$f = fopen("carrello.xml", "w");
fwrite($f, $xml->asXML());
fclose($f);
$f=1;
break;
}
}}}
if (£f==0){
$p = $elemento->addChild('elemento');
$p->addChild('nome',$_POST['nume']);
$p->addChild('costo',$_POST['custo']);
$p->addChild('tipo',$_POST['tupo']);
$p->addChild('quantità',1);
$xml->asXML('carrello.xml');
}
HelpMe