sto diventando deficente -.-
sto diventando deficente -.-
Stai confrontando un array con una variabile. Non capisco cosa stai cercando di fare...Codice PHP:
if(isset($_POST['barcodeart_vecchi']) == ($_POST['barcodeart_new']))
Ciao!
regolamento altervista_______________ regolamento forum
vorrei semplicemente fare in modo che se nell'array è gia presente quel barcode lo scriva cmq!!
Uff... è tutt'oggi che ci sto sbattendo la testa...
avevo indicato qui una (possibile) via da seguire...
Ciao!
regolamento altervista_______________ regolamento forum
Ho provato a seguire la tua via.. ma mi blocco... nel senso che... io faccio quel controllo sotto prima della while di $result... Solo che non capisco dopo la ricerca l'array cosa faccio? inserisco direttamente la while della query??
Prova a vedere una cosa del tipo:
Valgono le stesse considerazioni: non avendo il tuo db, non ho potuto provarlo.Codice PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<form action="<?= $_SERVER['PHP_SELF'] ?>" method="post"> <!-- è bene specificare l'action nell'action del form, e non traite js! -->
<table>
<tr>
<td><input type="text" placeholder="Barcode" name="barcodeart_new" id="barcodeart" size="10" value=""></td>
<td><input type="submit" class="visto" name="visto"></td>
</tr>
</table>
<?php
include('connect.php');
if(isset($_POST['barcodeart_new']) && !empty($_POST['barcodeart_new']))
$query = 'SELECT * FROM articoli WHERE Barcode=\''.mysql_real_escape_string($_POST['barcodeart_new']).'\''; //se i barcode sono interi, si possono evitare gli apici \'
else if(isset($_POST['barcodeart_vecchi']))
$query = 'SELECT * FROM articoli WHERE 0 '; //il WHERE 0 è una bruttura... se non funziona, si può cercar di far di meglio
if(isset($_POST['barcodeart_vecchi']))
foreach($_POST['barcodeart_vecchi'] as $barcode)
$query .= ' OR Barcode=\''.mysql_real_escape_string($barcode).'\' '; //se i barcode sono interi, si possono evitare gli apici \'
if(isset($query))
$result = mysql_query($query) or die('Query failed: ' . mysql_error() . "<br />");
?>
<table>
<?php
if(isset($result))
{
while($righi=mysql_fetch_array($result))
$barcodeart[$righi['Barcode']] = array('Descrizione'=>$righi['Descrizione'], 'Vendita'=>$righi['Vendita']); //creo un nuovo array dove salvo per ogni barcode, i dati.
$barcodeart_da_mostrare = array();
if(isset($_POST['barcodeart_vecchi']))
$barcodeart_da_mostrare = $_POST['barcodeart_vecchi']; //metto gli elementi vecchi realmente mostrati
if(isset($_POST['barcodeart_new']))
$barcodeart_da_mostrare[] = $_POST['barcodeart_new']; //aggiungo quello nuovo (prima bisognerebbe far il controllo per vedere se esiste nel db)
foreach($barcodeart_da_mostrare as $k)
echo '
<tr>
<td><input type="text" placeholder="Barcode" name="barcodeart_vecchi[]" id="barcodeart" size="10" value="'.$k.'"></td>
<td><input type="text" placeholder="Descrizione" name="descrizione[]" id="descrizione" size="32" value="'.$barcodeart[$k]['Descrizione'].'"></td>
<td><input type="text" style="text-align:center" placeholder="Qnt" name="campo[]" id="quantita" size="3" value="1"></td>
<td><input type="text" placeholder="Prezzo" name="prezzo[]" id="prezzo" size="5" value="'.$barcodeart[$k]['Vendita'].'" ></td>
<td><input type="text" placeholder="Sc %" name="scontoperc[]" id="scontoperc" size="3"></td>
<td><input type="text" placeholder="Sc VAL" name="scontoval[]" id="scontoval" size="4"></td>
<td><input type="text" placeholder="P.Scontato" name="prezzosconto[]" id="prezzosconto" size="6"></td>
</tr>
';
}
?>
</table>
</form>
</body>
</html>
Ciao!
regolamento altervista_______________ regolamento forum
tu sei un genio... Sei il mio salvatore!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Uhm... Ora però devo risolvere due problemi... Se il barcode è vuoto non deve fare una riga nuova... E poi, come hai scritto te devo cercare il barcode nuove se esiste e stamparlo eventualmente.. Avevo pensato...
Per il barcode vuoto, prima della ricerca un if(barcodeart_new == "") nulla altrimenti continua
Mentre per la ricerca del nuovo non ho ben capito quale è il valore del barcode sinceramente,,,
Se ho capito bene potrei fare :
$query = 'SELECT * FROM articoli WHERE Barcode='$barcodeart_da_mostrare[]'
se esiste stampo i valori, altrimenti non fa nulla... Dico male?
mhmhmh ho provato in questa maniera ma non succede nulla... Nel senso che la query la effettua ma non controlla se effettivamente il barcode è vuoto e crea la linea ugualmente... idem se il prodotto in magazzino non è presente... ti posto la pagina intera coi relativi cambiamenti:
Se vuoi fare alcune prove l'indirizzo è : http://laviadellanima.com/pdf/altervista2.phpCodice PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<form action="<?= $_SERVER['PHP_SELF'] ?>" method="post">
<table>
<tr>
<td><input type="text" placeholder="Barcode" name="barcodeart_new" id="barcodeart" size="10" value=""></td>
<td><input type="submit" class="visto" name="visto"></td>
</tr>
</table>
<?php
include('connect.php');
if(isset($_POST['barcodeart_new']) && !empty($_POST['barcodeart_new']))
$query = 'SELECT * FROM articoli WHERE Barcode=\''.mysql_real_escape_string($_POST['barcodeart_new']).'\''; //se i barcode sono interi, si possono evitare gli apici \'
else if(isset($_POST['barcodeart_vecchi'])&& !empty($_POST['barcodeart_vecchi']))
$query = 'SELECT * FROM articoli WHERE 0 '; //il WHERE 0 è una bruttura... se non funziona, si può cercar di far di meglio
if(isset($_POST['barcodeart_vecchi']))
foreach($_POST['barcodeart_vecchi'] as $barcode)
$query .= ' OR Barcode=\''.mysql_real_escape_string($barcode).'\' '; //se i barcode sono interi, si possono evitare gli apici \'
if(isset($query))
$result = mysql_query($query) or die('Query failed: ' . mysql_error() . "<br />");
?>
<table>
<?php
if(isset($result))
{
while($righi=mysql_fetch_array($result))
$barcodeart[$righi['Barcode']] = array('Descrizione'=>$righi['Descrizione'], 'Vendita'=>$righi['Vendita'],'UM'=>$righi['UM'],'Quantita'=>$righi['Quantita'],'Fornitore'=>$righi['Fornitore'],'Codice'=>$righi['Codice']); //creo un nuovo array dove salvo per ogni barcode, i dati.
$barcodeart_da_mostrare = array();
if(isset($_POST['barcodeart_vecchi']))
$barcodeart_da_mostrare = $_POST['barcodeart_vecchi']; //metto gli elementi vecchi realmente mostrati
if(isset($_POST['barcodeart_new']))
$query =mysql_query("SELECT * FROM articoli WHERE Barcode='$barcodeart_new'");
$esiste=mysql_num_rows($query);
//se $esiste == 0 non cè
if($esiste > 0){//esiste
$barcodeart_da_mostrare[] = $_POST['barcodeart_new']; //aggiungo quello nuovo (prima bisognerebbe far il controllo per vedere se esiste nel db)
foreach($barcodeart_da_mostrare as $k)
echo '
<tr>
<td><input type="text" placeholder="Barcode" name="barcodeart_vecchi[]" id="barcodeart" size="10" value="'.$k.'"></td>
<td><input type="text" placeholder="Descrizione" name="descrizione[]" id="descrizione" size="32" value="'.$barcodeart[$k]['Descrizione'].'"></td>
<td><input type="text" style="text-align:center" placeholder="Qnt" name="quantita[]" id="quantita" size="3" value="1"></td>
<td><input type="text" placeholder="Prezzo" name="prezzo[]" id="prezzo" size="5" value="'.$barcodeart[$k]['Vendita'].'" ></td>
<td><input type="text" placeholder="Sc %" name="scontoperc[]" id="scontoperc" size="3"></td>
<td><input type="text" placeholder="Sc VAL" name="scontoval[]" id="scontoval" size="4"></td>
<td><input type="text" placeholder="P.Scontato" name="prezzosconto[]" id="prezzosconto" size="6"></td>
<td><input type="hidden" name="fornitore[]" id="fornitore" size="100" value="'.$barcodeart[$k]['Fornitore'].'"></td>
<td><input type="hidden" name="codice[]" id="codice" size="100" value="'.$barcodeart[$k]['Codice'].'"></td>
<td><input type="hidden" name="reparto[]" id="reparto" size="100" value="'.$barcodeart[$k]['Reparto'].'"></td>
<td><input type="hidden" name="UM[]" id="UM" size="100" value="'.$barcodeart[$k]['UM'].'"></td>
</tr>
';
}
}
?>
La variabile "$barcodeart_new" non esiste. Devi usare $_POST['barcodeart_new']:Codice PHP:
$query =mysql_query("SELECT * FROM articoli WHERE Barcode='$barcodeart_new'");
----------Codice PHP:
$query =mysql_query("SELECT * FROM articoli WHERE Barcode='".mysql_real_escape_string($_POST['barcodeart_new'])."'");
La variabile $esiste è inutile (più che altro rende più complicato la lettura del sorgente: potresti fare semplicemente:Codice PHP:
$esiste=mysql_num_rows($query);
//se $esiste == 0 non cè
if($esiste > 0){//esiste
Ciao!Codice PHP:
if(mysql_num_rows($query)){//esiste
regolamento altervista_______________ regolamento forum
Si infatti ho risolto facendo cosi... Ho anche sistemato il fatto che se inserivo un barcode inesistente cancellava tutto... mi rimane solo un errore da sistemare...Quando non metto barcode e premo lo stesso mi esce fuori :
Ti posto l'intero script... :Codice:Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/laviadellanima.com/public_html/pdf/altervista2.php on line 39
La riga 39 è quella riferita al "se esiste"....Codice PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<form action="<?= $_SERVER['PHP_SELF'] ?>" method="post">
<table>
<tr>
<td><input type="text" placeholder="Barcode" name="barcodeart_new" id="barcodeart" size="10" value=""></td>
<td><input type="submit" class="visto" name="visto"></td>
</tr>
</table>
<?php
include('connect.php');
if(isset($_POST['barcodeart_new']) && !empty($_POST['barcodeart_new']))
$query = 'SELECT * FROM articoli WHERE Barcode=\''.mysql_real_escape_string($_POST['barcodeart_new']).'\''; //se i barcode sono interi, si possono evitare gli apici \'
else if(isset($_POST['barcodeart_vecchi'])&& !empty($_POST['barcodeart_vecchi']))
$query = 'SELECT * FROM articoli WHERE 0 '; //il WHERE 0 è una bruttura... se non funziona, si può cercar di far di meglio
if(isset($_POST['barcodeart_vecchi']))
foreach($_POST['barcodeart_vecchi'] as $barcode)
$query .= ' OR Barcode=\''.mysql_real_escape_string($barcode).'\' '; //se i barcode sono interi, si possono evitare gli apici \'
if(isset($query))
$result = mysql_query($query) or die('Query failed: ' . mysql_error() . "<br />");
?>
<table>
<?php
if(isset($result))
{
while($righi=mysql_fetch_array($result))
$barcodeart[$righi['Barcode']] = array('Descrizione'=>$righi['Descrizione'], 'Vendita'=>$righi['Vendita'],'UM'=>$righi['UM'],'Quantita'=>$righi['Quantita'],'Fornitore'=>$righi['Fornitore'],'Codice'=>$righi['Codice']); //creo un nuovo array dove salvo per ogni barcode, i dati.
$barcodeart_da_mostrare = array();
if(isset($_POST['barcodeart_vecchi']))
$barcodeart_da_mostrare = $_POST['barcodeart_vecchi']; //metto gli elementi vecchi realmente mostrati
if(isset($_POST['barcodeart_new'])&& !empty($_POST['barcodeart_new']))
$query =mysql_query("SELECT * FROM articoli WHERE Barcode='".mysql_real_escape_string($_POST['barcodeart_new'])."'");
//se $esiste == 0 non cè
if(mysql_num_rows($query)){//esiste
$barcodeart_da_mostrare[] = $_POST['barcodeart_new']; //aggiungo quello nuovo (prima bisognerebbe far il controllo per vedere se esiste nel db)
}
foreach($barcodeart_da_mostrare as $k)
echo '
<tr>
<td><input type="text" placeholder="Barcode" name="barcodeart_vecchi[]" id="barcodeart" size="10" value="'.$k.'"></td>
<td><input type="text" placeholder="Descrizione" name="descrizione[]" id="descrizione" size="32" value="'.$barcodeart[$k]['Descrizione'].'"></td>
<td><input type="text" style="text-align:center" placeholder="Qnt" name="quantita[]" id="quantita" size="3" value="1"></td>
<td><input type="text" placeholder="Prezzo" name="prezzo[]" id="prezzo" size="5" value="'.$barcodeart[$k]['Vendita'].'" ></td>
<td><input type="text" placeholder="Sc %" name="scontoperc[]" id="scontoperc" size="3"></td>
<td><input type="text" placeholder="Sc VAL" name="scontoval[]" id="scontoval" size="4"></td>
<td><input type="text" placeholder="P.Scontato" name="prezzosconto[]" id="prezzosconto" size="6"></td>
<td><input type="hidden" name="fornitore[]" id="fornitore" size="100" value="'.$barcodeart[$k]['Fornitore'].'"></td>
<td><input type="hidden" name="codice[]" id="codice" size="100" value="'.$barcodeart[$k]['Codice'].'"></td>
<td><input type="hidden" name="reparto[]" id="reparto" size="100" value="'.$barcodeart[$k]['Reparto'].'"></td>
<td><input type="hidden" name="UM[]" id="UM" size="100" value="'.$barcodeart[$k]['UM'].'"></td>
</tr>
';
}
?>
Giustamente, se il barcode non esiste o è vuoto, non ha senso andar a vedere quanti ne ha trovati nel db... il tutto si dovrebbe risolvere con una graffa:
Ciao!Codice PHP:
if(isset($_POST['barcodeart_new'])&& !empty($_POST['barcodeart_new']))
{
$query =mysql_query("SELECT * FROM articoli WHERE Barcode='".mysql_real_escape_string($_POST['barcodeart_new'])."'");
if(mysql_num_rows($query))
$barcodeart_da_mostrare[] = $_POST['barcodeart_new']; //aggiungo quello nuovo (prima bisognerebbe far il controllo per vedere se esiste nel db)
}
regolamento altervista_______________ regolamento forum
si effettivamente funziona tutto... Se io volessi prendere tutto e spedirlo ad un database mi basterebbe fare :
Oppure devo fare diversamente? a me praticamente salva ogni riga della descrizione codice etc, e il numero della transazione che glielo passo tramite query prima...Codice PHP:
<?php
$descrizione= $_POST['descrizione'];
$codice= $_POST['codice'];
$sconto = $_POST['scontoval'];
$prezzo= $_POST['prezzo'];
$quantita= $_POST['quantita'];
$conta=count($descrizione);
for ($i=0;$i<$conta;$i++) {
$query2 ="INSERT INTO transazioni (
id,descrizione,codice,sconto,prezzo,quantita)
VALUES (NULL,'$descrizione[$i]','$codice[$i]','$prezzo[$i]','$quantita[$i]','$sconto[$i]')";
}
if (@mysql_query($query2)) {
$conta=count($descrizione);
for ($i=0;$i<$conta;$i++) {
echo $descrizione[$i]."<br>";
echo $prezzo[$i]."<br>";
echo $quantita[$i]."<br>";
echo $sconto[$i]."<br>";
}
?>
Ho provato ma mi prende solamente l'ultima riga.. anche se le altre a video le vedo correttamente... Che sbaglio?
ovviamente ti inserisce soltanto l'ultima riga perché effettui soltanto una query: dentro la variabile "$query2" metti ogni volta una nuova query da eseguire, ma non la esegui! Poi, l'ultima ovviamente rimane dentro e la esegue in mysql_query().
Occhio che per gli array, la sostituzione delle variabili andrebbe fatta tra le graffe, una cosa del tipo:
Anche se io non utilizzo mai quel sistema... So che in quel modo andrebbe fatto così, ma io non lo uso, quindi non ne son certo del suo funzionamento.Codice PHP:
$query2 ="INSERT INTO transazioni (
id,descrizione,codice,sconto,prezzo,quantita)
VALUES (NULL,'{$descrizione[$i]}','{$codice[$i]}','{$prezzo[$i]}','{$quantita[$i]}','{$sconto[$i]}')";
In ogni caso, occhio alle sql injection! Tutti i valori prelevati dal form devi farli passare attraverso la mysql_real_escape_string() prima di metterli nelle query!
Infine, immagino che il campo "id" sia autoincrement. Quindi non dovresti specificarlo nella query. Si setterà in automatico nel valore giusto.
EDIT: ero convinto di avertelo già detto, ma in realtà non l'ho fatto: occhio che le funzioni mysql_*() sono deprecate! Dovresti usare le mysqli_*().
Ciao!
Ultima modifica di alemoppo : 28-05-2013 alle ore 17.16.40
regolamento altervista_______________ regolamento forum
non ho capito cosa intenti per "metti ogni volta variabile per "query2"... Inoltre...
mysql_real_escape_string() come si usa sulle variabili???
Grazie...
Leggi commento:------Codice PHP:
for ($i=0;$i<$conta;$i++) {
$query2 ="INSERT INTO transazioni (
id,descrizione,codice,sconto,prezzo,quantita)
VALUES (NULL,'$descrizione[$i]','$codice[$i]','$prezzo[$i]','$quantita[$i]','$sconto[$i]')";
}
//qui usi $query2. È ovvio che conterrà l'ultima query (nel ciclo si sovrascrivono). Quindi o concateni le query, o effettui ad ogni ciclo la mysql_query();
mysql_real_escape_string()
L'avevo usata anche poco prima.
Ciao!
regolamento altervista_______________ regolamento forum
Me ne inserisce tre... due volte l'ultima e una la prima...Codice PHP:
$conta=count($ubicazione);
for ($i=0;$i<$conta;$i++) {
$query2 ="INSERT INTO sedi (
id,ubicazione,cap,citta,provincia,piva)
VALUES (NULL,'$ubicazione[$i]','$cap_ubi[$i]','$citta_ubi[$i]','$provincia_ubi[$i]','$piva')";
mysql_query($query2);
}
Ultima modifica di AdminTeclis : 29-05-2013 alle ore 10.15.04
Inoltre aggiungo...
mi sono letto il link che mi hai passato, riporto il loro esempio :
Quindi significa che se volessi cambiare cosi la mia query sarebbe :Codice PHP:
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
mysql_real_escape_string($user),
mysql_real_escape_string($password));
è giusto quello che ho scritto???Codice PHP:
$query2 ="INSERT INTO sedi (
id,ubicazione,cap,citta,provincia,piva)
VALUES (NULL,'mysql_real_escape_string($ubicazione[$i])','mysql_real_escape_string($cap_ubi[$i])','mysql_real_escape_string($citta_ubi[$i])','mysql_real_escape_string($provincia_ubi[$i])','mysql_real_escape_string($piva)')";
Prova così:Comunque ripeto: se id è autoincrement, non ha senso specificarlo nella query.Codice PHP:
$query2 ="INSERT INTO sedi (
id,ubicazione,cap,citta,provincia,piva)
VALUES (NULL,'".mysql_real_escape_string($ubicazione[$i])."','".mysql_real_escape_string($cap_ubi[$i])."','".mysql_real_escape_string($citta_ubi[$i])."','".mysql_real_escape_string($provincia_ubi[$i])."','".mysql_real_escape_string($piva))."');";
Ciao!
regolamento altervista_______________ regolamento forum
ok ora provo.. il problema rimane che inserisce 3 sedi, di cui 2 uguali e una no.. quando ne dovrebbe isnerire solo 2...
il problema lo ho come spiegato sopra.. le variabili sono giuste,,,
Non saprei aiutarti... è strano... Controlla quante volte esegui la query... Hai eliminato il comando "mysql_query()" dopo il for? (quello interno al for va bene. L'altro dovresti averlo già eliminato...).
Ciao!
regolamento altervista_______________ regolamento forum
sisi chiaramente si... è giusto fare il count della variabile ubicazione? come indice del for intendo...
la struttura ora è :
Codice PHP:
<?php
$conta=count($ubicazione);
for ($i=0;$i<$conta;$i++) {
$query2 ="INSERT INTO sedi (
id,ubicazione,cap,citta,provincia,piva)
VALUES (NULL,'$ubicazione[$i]','$cap_ubi[$i]','$citta_ubi[$i]','$provincia_ubi[$i]','$piva')";
mysql_query($query2);
}
if (@mysql_query($query2)) {
$conta=count($ubicazione);
for ($i=0;$i<$conta;$i++) {
echo $ubicazione[$i]."<br>";
echo $citta_ubi[$i]."<br>";
echo $cap_ubi[$i]."<br>";
echo $provincia_ubi[$i]."<br>";
}
?>
Teoricamente qualsiasi array che prelevi va bene ($descrizione, $codice, $sconto, $prezzo....)...
Perché hanno tutti la stessa dimensione, quindi quel che prendi prendi...
Magari per "test" vedi se le dimensioni degli array sono uguali (ad esempio stampando a video le loro dimensioni)..
Ciao!
regolamento altervista_______________ regolamento forum
ti posto la parte finale dello script... tanto la parte sopra è solamente l' $_POST delle variabili, quelle obbligatorie chiaramente incrementano una variabile che viene controllata da un if prima di fare le query etc... lo script è questo :
Non capisco dove caspita è l'errore *****... eppure l'echo stampa perfettamente tutto,,,Codice PHP:
<?php
if($a == 2 && $b == 2 && $c == 2 && $d == 2 && $e == 2 && $f == 2 && $g == 2){
//INSERISCI NUOVO UTENTE NEL DATABASE
$query = "INSERT INTO clienti ( id,ragione,indirizzo,cap,citta,provincia,telefono,mail,piva,telefono1,telefono2,fax,agente,telefono_agente,cellulare_agente)
VALUES (NULL,'$ragione','$indirizzo', '$cap','$citta','$provincia','$telefono','$mail','$piva','$telefono1','$telefono2','$fax','$agente','$telefono_agente','$cellulare_agente')";
$conta=count($ubicazione);
for ($i=0;$i<2;$i++) {
$query2 ="INSERT INTO sedi (
id,ubicazione,cap,citta,provincia,piva)
VALUES (NULL,'$ubicazione[$i]','$cap_ubi[$i]','$citta_ubi[$i]','$provincia_ubi[$i]','$piva')";
mysql_query($query2);
}
if (@mysql_query($query2)) {
$conta=count($ubicazione);
for ($i=0;$i<$conta;$i++) {
echo $ubicazione[$i]."<br>";
echo $citta_ubi[$i]."<br>";
echo $cap_ubi[$i]."<br>";
echo $provincia_ubi[$i]."<br>";
}
} else {
echo ("<div align=center class=testo> <b>Errore di inserimento cliente: ". mysql_error()
."</b></div>");
}
if (@mysql_query($query)) {
echo ("<div align=center class=testo> <b> Cliente inserito con successo.</b></div>");
} else {
echo ("<div align=center class=testo> <b>Errore di inserimento cliente: ". mysql_error()
."</b></div>");
}
}
?>
Ultima modifica di alemoppo : 30-05-2013 alle ore 02.27.03 Motivo: linguaggio volgare
QUI:
Esegui proprio la query che dicevo sopra.Per controllare se le query sono eseguite correttamente, non ha senso rieseguirle (quindi ti salva altri dati).Codice PHP:
if (@mysql_query($query2)) {
Fai una cosa del tipo:
(lo stesso identico discorso per la query1).Codice PHP:
$risultato_query = true;
for ($i=0;$i<2;$i++) {
$query2 ="INSERT INTO sedi (
id,ubicazione,cap,citta,provincia,piva)
VALUES (NULL,'$ubicazione[$i]','$cap_ubi[$i]','$citta_ubi[$i]','$provincia_ubi[$i]','$piva')";
if(!mysql_query($query2))
$risultato_query = false;
}
/*poi, controlli così:*/
if($risultato_query)
{
//le query sono andate a buon fine
}
else
{
//errore
}
p.s: in questo forum non è tollerato il linguaggio volgare.
Ciao!
Ultima modifica di alemoppo : 30-05-2013 alle ore 02.31.21
regolamento altervista_______________ regolamento forum
Mannaggia la miseria hai perfettamente ragione.. sarà stata una distrazione dovuta all'ora... Sopratutto perchè ci perdevo tempo dalla mattina, e gli errori più banali vengono fuori sempre all'ultimo...
Ho un altro problema relativo a quella schermata... Facendo le prove con pagine singole funziona tutto, mentre se unisco le due pagine non funziona...
Come hai visto nelle righe che creo quando trovo il barcode, ci sono la riga sconto in percentuale, quella sconto in valore, e alla fine la riga riassuntiva prezzo scontato...
Ho fatto una pagina di prova php riproponendo il tutto, in questa maniera :
Ora però è sorto un problema... Io potrei avere più prezzi, e piu righi...Codice PHP:
<?php
if(isset($_POST['subtotale'])){
$prezzosconto=$_POST[prezzosconto];
$prezzo=$_POST[prezzo];
$scontoperc=$_POST[scontoperc];
$scontoval=$_POST[scontoval];
$quantita=$_POST[quantita];
if($quantita == null){
$quantita=1;
}
if($scontoperc == null && $scontoval == null){
$scontoperc=0;
$scontoval=0;
$prezzosconto=$prezzo*$quantita;
}
if($scontoperc == null){
$scontoperc=0;
$prezzosconto = (($prezzo*$quantita) - $scontoval);
}elseif($scontoval == null){
$scontoval=0;
$percentuale=(($prezzo*$scontoperc)/100);
$prezzosconto = ($prezzo - $percentuale) ;
$prezzosconto = ($prezzosconto * $quantita);
}
}
?>
Come faccio a fargli fare questa cosa per ogni singola riga? Avevo pensato agli array... Inoltre ho notato chhe se provo a inserire questa cosa, usando il form che creo se trova barcode, e il tasto in questa maniera :
Non fa nulla e crea una riga nuova, come se andasse in conflitto con quello che abbiamo fatto precedentemente...Questo problema penso si possa risolvere mettendo queste righe in una funzione , dentro una nuova pagina, e richiamarla con require(); o include(); vero?Codice HTML:<input type="submit" name="subtotale" onclick= "this.form.action='.$_SERVER['PHP_SELF'].'" value="Subtotale"></td> ';
Per il primo problema, sì, devi usare gli array.... anche perché i dati $_POST[] sono comunque array (se non ho capito male).
Per il secondo problema, prima di eseguire il codice che abbiamo fatto precedentemente, devi vedere se l'utente ha premuto il tasto giusto (adesso non ricordo il nome del submit): un po' come hai fatto qui:
ovvero:Codice PHP:
if(isset($_POST['subtotale'])){
Gli include/require non risolvono nulla, perché è come incollare il sorgente direttamente dove includi le pagine.Codice PHP:
if(isset($_POST['inserisci_barcode'])){
//codice che abbiam fatto prima
}
if(isset($_POST['subtotale'])){
//codice che hai scritto adesso
}
Ciao!
regolamento altervista_______________ regolamento forum
quindi gli $_POST li tratto come un array? del tipo
Intendi una cosa del tipo?? ovviamente poi per esempio:Codice PHP:
<?php
$prezzo=$_POST['prezzo']
$quantita=$_POST['quantita']
$sconto=$_POST['sconto']
$conta=count($prezzo);
for ($i=0;$i<$conta;$i++)
il codice del tasto;
chiudo for
?>
$prezzofinale[$i]=$prezzo[$i]*$quantita[$i];
Giusto??
Per quanto riguarda la differenzazzione dei tasti, io gia faccio il tutto se viene premuto il tasto subtotale... devo metterlo direttamente dentro il form che abbiamo fatto per i barcode, senza inserire l'attributo onclick();???
Ok, ho modificato il codice, ma non l'ho provato perche ho problemi con i vari submit.. intanto ti posto il codice corretto secondo quanto ci siamo detti, vedi si potrebbe andare bene, quanto meno il codice e l'idea...
Codice PHP:
<?php
if(isset($_POST['subtotale'])){
$prezzosconto=$_POST[prezzosconto];
$prezzo=$_POST[prezzo];
$scontoperc=$_POST[scontoperc];
$scontoval=$_POST[scontoval];
$quantita=$_POST[quantita];
if($quantita == null){
$quantita=1;
}
$conta=count($prezzo);
for ($i=0;$i<$conta;$i++){
if($scontoperc[$i] == null && $scontoval[$i] == null){
$scontoperc[$i]=0;
$scontoval[$i]=0;
$prezzosconto[$i]=$prezzo[$i]*$quantita[$i];
}
if($scontoperc[$i] == null){
$scontoperc[$i]=0;
$prezzosconto[$i] = (($prezzo[$i]*$quantita[$i]) - $scontoval[$i]);
}elseif($scontoval[$i] == null){
$scontoval[$i]=0;
$percentuale[$i]=(($prezzo[$i]*$scontoperc[$i])/100);
$prezzosconto[$i] = ($prezzo[$i] - $percentuale[$i]) ;
$prezzosconto[$i] = ($prezzosconto[$i] * $quantita[$i]);
}
}
}
?>