- Home
- Categorie
- Coding e Sistemistica
- PHP
- Errore php in pagina
-
Errore php in pagina
Ciao a tutti, sto sbattendo la testa da un'ora con questo mistero
ho una condizione che deve variare a seconda dei casise scrivo in questo modo funziona perfettamente
[PHP]if ($numeroalessandria<$minoredi)[/PHP]
se scrivo così anche funziona perfettamente
[PHP]if ($numeroalessandria<$minoredi && $today<18)[/PHP]
se invece voglio far caricare anche la seconda condizione come una variabile non si legge più nulla ed ho pagina bianca
[PHP]$scalailgirotardi=" && $today<18";
if ($numeroalessandria<$minoredi $scalailgirotardi)[/PHP]
Qualcuno potrebbe aiutarmi a capire dov'è l'errore?
Grazie mille in anticipo ai programmatori!! Laura
-
Ho risolto ora scrivendo così
[php]$variabilecombinata="$minoredi $scalailgirotardi";
if ($numeroalessandria<$variabilecombinata) [/php]
Ciao a tutti, buon fine settimana, Laura
-
Ciao!
il problema era infatti legato alla concatenazione delle due variabili
-
Ciao ci deve essere ancora qualcosa che non ho capito nella concatenazione delle variabili, perché il codice che ho fatto non funziona.
Per semplificare perché se scrivo così mi stampa "Vere tutte e due" ?
Quando invece 19 non può essere minore di 18? Grazie in anticipo[PHP]
if (("4<30") AND ("19<18")) { echo "VERE TUTTE E DUE"; } else { echo " NON VERE TUTTE E DUE"; }
[/PHP]
-
Attenzione che stai confrontanto stringhe e non numeri.
-
Ciao ideasiti,
stai facendo confusione con variabili, stringhe, numeri ed operatori nelle condizioni.
Il codice corretto per la condizione che hai scritto è:
[PHP]
<?php
if ( 4 < 30 && 19 < 18 ) {
echo "VERE TUTTE E DUE";
} else {
echo " NON VERE TUTTE E DUE";
}
?>
[/PHP]Se ci spieghi bene cosa vuoi fare, con un esempio concreto forse possiamo aiutarti meglio.
Un saluto.
-
Ciao Marco,
dopo varie prove sono riuscita a far funzionare il programma,
il fatto che ho risolto empiricamente (a furia di tentativi) perché non ho capito
bene qual era l'errore.Ora funziona.
Il programma deve far partire un'azione
estrapolando dati da un database di ordini e deve farla partire dopo aver verificato tre condizioni.-
Deve contare che il giorno dell'ordine ci siano meno di 40 ordini in città
e meno di 30 se è un paese dei dintorni -
L'ordine per un paese può essere accettato fino alle 18 del giorno prima e per la città fino alle 12 del giorno stesso.
-
Se è festa per il giorno dell'ordine l'ordine deve essere scalato fino al primo giorno disponibile (che varia a seconda di un calendario
di consegne diverso per ogni paese del circondario e per il giorno successivo per la città, se non è festa).
Alla fine scrivendo in questo modo e facendo le varie prove ho visto che funziona in tutte le combinazioni.
L'unica stranezza è che non mi stampa la variabille con l'avviso [PHP]if ($orariouno<$orariodue) {$avvisoposticipotre=" dato che sono passate le 18 ";}[/PHP][PHP]
$x = "$numeroalessandria"; // questa variabile la ottengo con una query sul Db che conta il numero di ordini del giorno$y = "$minoredi"; // questa varibile stampa 30 se è un paese e 40 se è città
if ($scalailgirotardi=="si") {$orariouno="$today"; $orariodue="18:00"; } else {$orariouno="8"; $orariodue="10"; } // la variabile di if la metto perché mi serve solo nel caso che siamo fuori città
if ($x>$y) {$avvisoposticipouno=" dato che il numero di consegne massimo per il giorno è stato superato ($minoredi) ";} // mi serve per stampare avviso nel caso sia superato numero di consegne per il giorno
if ($datainserire==$datafesta) {$avvisoposticipodue=" dato che il giorno che hai scelto per la consegna è festivo ";} // mi serve per avvisare che il giorno scelto è festa, le feste sono recuperate con una query da una tabellaif ($orariouno<$orariodue) {$avvisoposticipotre=" dato che sono passate le 18 ";} // mi serve per avvisare che dopo le 18 ordine scala di un giro
/* faccio partire azione se le 3 condizioni sono verificate, in caso contrario stampo gli avvisi */
if ($x<$y && $orariouno<$orariodue && $datainserire!=$datafesta)
{echo "<a href='http://www.contadilandia.it/conferma-ordine/?idordine=$idordine&dataposticipata=$datainserireitalia&datadapassareperdatabase=$datainserire'>Confermi l'ordine con consegna il giorno $datainserire?</a> <br/>
<a href='javascript:history.back()'>Modifica ordine</a>
";}
[/PHP]
Grazie per il tuo aiuto, Laura
-
-
Potresti dare anche un esempio di come sono valorizzate le variabili?
Tutte quelle di cui fai il confronto magari... e cosa più importante come le valorizzi...
Da quello che mi sembra di vedere forse fai confuzione su assegnazione a variabili che pensi siano numeriche ma che in realtà lui vede come stringhe perchè magari le metti all'interno delle virgolette.Lui a questo punto effettua controlli su stringhe e non su numeri.
Servirebbe quindi capire che valori dai e come li dai a ...
orariouno, orariodue, scalailgirotardi, x, y, ....Orario uno e due ad esempio prima li confronti come interi (immagino) poi gli assegni stringhe... $orariouno="$today"; $orariodue="18:00";
Per le stringhe dovresti usare strcmp...
-
Ciao,
ti consiglio di perfezionare il sistema di scrittura php perchè così è molto poco chiaro[PHP]
$scalailgirotardi=="si" -- DIVENTA --> $giro_tardi == TRUE$orariouno="$today" ; -- DIVENTA --> $time_1 = '$today';
$orariodue="18:00"; -- DIVENTA --> $time_2 = 18;
[/PHP]
Insomma, sono piccoli esempi, ma in sostanza, come base, potresti:
- non abusare del " --> meglio usare ' se non ci sono variabili
- usa _ per dividere le parole
- usa l'inglese se puoi
- '18:00' è una stringa, 18 un numero
...e cosi via