up please....
up please....
Si fanno sempre nuove scoperte
cosa fa questa funzione?Originariamente inviato da gabar-el
$crediti = $_POST['crediti'] ? "'".trim($_POST['crediti'])."'" : null;
if (!ereg("[0-9]{1,2}", $crediti))
e questa?
la prima recupera il campo e provvede ad eliminare spazi bianchi non necessari, altrimenti torna null
la seconda è un espressione regolare che implica che possano essere inseriti numeri solo da 0 a 9 e che possano esserne inseriti solo 2, poi torna la variabile....
come mai queste domande? :master:
Si fanno sempre nuove scoperte
prova a controllare le aperture e chiusure degli if
il primo if dovrebbe chiudersi alla fine e non subito dopo
Codice PHP:
if ($_POST['crediti'])
{
if ($_POST['accreditamento']==true) {
$crediti=-1; }
} else {
penso proprio di non aver capito a cosa ti riferisci, puoi essere più chiara per favore?
grazie
Si fanno sempre nuove scoperte
Secondo me il primo if si chiude alla fine, invece prima si chiudeva dove c'èCodice PHP:if ($_POST['crediti'])
{ //apre1
if ($_POST['accreditamento']==true) { //apre2
$crediti=-1;
} /*chiude2*/ else { //apre3
$crediti = $_POST['crediti'] ? "'".trim($_POST['crediti'])."'" : null;
} //chiude3
if ($crediti) { //apre4
if (!ereg("[0-9]{1,2}", $crediti)) { //apre5
echo "Crediti non validi!";
} //chiude5
} //chiude4
else
{ //apre6
$crediti = 'NULL';
}//chiude6
}//CHIUDE1
$crediti=-1;
avevi ragione, grazie.
ora però noto che il form funzia correttamente solo se inserisco i crediti, se li lascio vuoti o se spunto la checkbox mi torna questo errore:
non riesco a capire come risolvere, direi che dipende dal campo crediti che a quanto pare non accetta il vaolore null. strano....codice:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' '222.00', NOW())' at line 2
Si fanno sempre nuove scoperte
mi pare che quando si scrive la query per l'insert non si mette il null fra apici
quindi, prima della query puoi fare un altro controllo
spero funzioni cosìCodice PHP:if ($crediti=='')
{
$query= "insert into tuatab ('campi1','campi2','crediti') values('$campo1','$campo2', NULL) ";
}else{
$query= "insert into tuatab ('campi1','campi2','crediti') values('$campo1','$campo2', '$crediti') ";
}
ciao
ma è corretto risolvere così? io non me ne intendo quindi parlo da ignorante, ma non mi sembra il massimo. Inoltre non c'è un else apposito a riguardo?
se no a cosa serve questo? mi stai dicendo che il problema è proprio questo passo qui?Codice PHP:else
{
$crediti = 'NULL';
}
inoltre ne approfitto per chiederti una cosa, che differenze c'è tra null e 'NULL'? dipende da dove mi trovo? tipo questi due passi:
grazieCodice PHP:if ($_POST['crediti'])
{
if ($_POST['accreditamento']==true)
{
$crediti=-1;
}
else
{
$crediti = $_POST['crediti'] ? "'".trim($_POST['crediti'])."'" [B]: null;[/B]
}
if ($crediti)
{
if (!ereg("[0-9]{1,2}", $crediti))
{
echo "Crediti non validi!";
}
}
else
{
$crediti = [B]'NULL';[/B]
}
}
ehmm.... come cavolo si fa a rendere grassetto una parte di codice php?![]()
Si fanno sempre nuove scoperte
Io non sono molto esperta... ma se sei dentro una query o una funzione usi null, altrimenti in una variabile usi 'null'
per il codice puoi decidere tu... hai 2 possibilità in questo caso:
1) modifichi la parte di codice }else { $crediti='NULL';} con }else { $crediti='';} e aggiungi l'if lì della query, come ti ho proposto prima
2)inserisci la query dove c'è }else { $crediti='NULL';} senza settare $crediti... cioè
}else { $query= "insert into tuatab ('campi1','campi2','crediti') values('$campo1','$campo2', NULL) ";}
Se usi la prima soluzione.. verrebbe:
Codice PHP:if ($_POST['crediti'])
{
if ($_POST['accreditamento']==true)
{
$crediti=-1;
}
else
{
$crediti = $_POST['crediti'] ? "'".trim($_POST['crediti'])."'" : null;
}
if ($crediti)
{
if (!ereg("[0-9]{1,2}", $crediti))
{
echo "Crediti non validi!";
}
}
else
{
$crediti ='';
}
}
if $crediti<>'' {
$query= "insert into tuatab ('campi1','campi2','crediti') values('$campo1','$campo2', NULL) ";
}else{
$query= "insert into tuatab ('campi1','campi2','crediti') values('$campo1','$campo2', '$crediti') ";
}
Usando la 2 soluzione verrebbe:
Sono la stessa cosa... scegli quello che ti piace di piùCodice PHP:if ($_POST['crediti'])
{
if ($_POST['accreditamento']==true)
{
$crediti=-1;
$query= "insert into tuatab ('campi1','campi2','crediti') values('$campo1','$campo2', '$crediti') ";
}
else
{
$crediti = $_POST['crediti'] ? "'".trim($_POST['crediti'])."'" : null;
$query= "insert into tuatab ('campi1','campi2','crediti') values('$campo1','$campo2', '$crediti') ";
}
if ($crediti)
{
if (!ereg("[0-9]{1,2}", $crediti))
{
echo "Crediti non validi!";
}
}
else
{
$query= "insert into tuatab ('campi1','campi2','crediti') values('$campo1','$campo2', NULL) ";
}
}
![]()
Ciao