[PHP] Difficoltà con costrutto if/else

samurai.sette

Utente Attivo
17 Dic 2015
234
6
18
Ciao a tutti. Come da titolo ho una piccola difficoltà con il costrutto if/else.
Ho creato un database con una tabella di 5 colonne (id - valore1 - valore2 - valore3 - attivo).
Se nelle righe della colonna "attivo" è scritto SI , di quella riga devo estrarre il valore della colonna 1; se nella colonna "attivo" non è scritto nulla devo stampare a video un messaggio di errore.
Se nella colonna "attivo" è scritto SI funziona perfettamente mentre se non è scritto nulla non funziona.
Questo è quello che ho fatto
PHP:
<?php
$conn = mysqli_connect("localhost", "root", "", "db");
$query = mysqli_query($conn, "SELECT * FROM tabella WHERE attivo = 'SI' ORDER BY id");

if ($query) {
    while ($dati = mysqli_fetch_array($query)) {
        echo $dati[1] . "<br />";
        mysqli_close($conn);
    }
}

else {
        echo "Errore!";
    }
?>
Spero che qualcuno possa darmi una dritta.
Ciao a tutti e grazie anticipatamente.
 

Rikk73

Utente Attivo
7 Apr 2015
137
6
18
Arezzo
Comunque indipendentemente dall'utilizzo di mysqli o meno, se ho capito bene..., non otterrai mai quello che vuoi se non modifichi la query, infatti tu vai ad estrarre dal db SOLO le colonne che hanno attivo=si, quindi le altre non PHP non le vede proprio.
Ti consiglio di estrarre tutta la tabella, poi controllando la colonna attivo se è si fai una cosa, altrimenti ne fai un'altra
 

macus_adi

Utente Attivo
5 Dic 2017
1.326
89
48
IT/SW
Ti consiglio di estrarre tutta la tabella, poi controllando la colonna attivo se è si fai una cosa, altrimenti ne fai un'altra
....????
Scherziamo....
Comunque non serve del codice per la valutazione del "si" - "no", ma solo un punto di escape in caso di risultato nullo...
Con l'estrazione di tutti i risultati avrai un baco nn indifferente....
 

Rikk73

Utente Attivo
7 Apr 2015
137
6
18
Arezzo
....????
Scherziamo....
Comunque non serve del codice per la valutazione del "si" - "no", ma solo un punto di escape in caso di risultato nullo...
Con l'estrazione di tutti i risultati avrai un baco nn indifferente....

No, non scherzo affatto.
la query "SELECT * FROM tabella WHERE attivo = 'SI' ORDER BY id" estrae SOLO i record che soddisfano la condizione richiesta, e che quindi hanno la colonna 'attivo' valorizzata a 'Si', quindi l'unica possibilità per avere un risultato nullo è che nel db non ci sia nessun record con la colonna attivo=Si.

L'estrazione di tutti i dati non è certo un baco, sicuramente è meglio mirare le query per estrarre il minimo indispensabile per non appesantire il server e velocizzare le chiamate, ma i bachi sono altre cose, un baco è quello che cerca di fare lui con quella query perchè non riuscirà mai ad ottenere il risultato cercato, nel suo caso il codice antrerà sempre e solo nell'if o sempre e solo nell'else.

Poi secondo te se non controlla i dati estratti come lo fa il punto di escpe? a caso?
Se l'intento è quello di vedere se ci sono record con attivo=Si allora la query va bene com'è, ma se vuole controllare QUALI record hanno si e quali no (o null), il WHERE non va certo bene così
 

macus_adi

Utente Attivo
5 Dic 2017
1.326
89
48
IT/SW
Nel caso sopra da te descritto concordo pienamente con te, certo sarebbe improponibile effettuare una valutazione con molti dati in tempi accettabili, sarebbe ripeto un baco/ errore concettuale....

if ($query) {
while (
$dati = mysqli_fetch_array($query)) {
echo
$dati[1] . "<br />";
mysqli_close($conn);
}
}

else {
echo
"Errore!";
}

In definitiva, non è stata richiesta la verifica/check sul campo, da nessuna parte viene effettuato il check sul campo SI ma solo sulla valorizzazione del risultato query....

-------
Edit.... Mi ero fermato al codice.... Sorry! Hai ragione!
 
Discussioni simili
Autore Titolo Forum Risposte Data
L difficoltà con Xampp. printing php mancante...help Web Server 6
Z [PHP] Difficoltà con la IF su orari disponibili e occupati PHP 5
M [PHP] Difficoltà inserimento valori nella tabella scontrini PHP 16
T fatture con voci fattura in php PHP 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
M Collegamento tra form html e script php PHP 4
M Problemi con la stampa dei valori in php PHP 1
W [Cerco collaborazioni] Sviluppatore Web (PHP) Offerte e Richieste di Lavoro e/o Collaborazione 0
D passare valori da database sql a php PHP 1
L Ricezione dei dati su file php da modulo html PHP 6
E Inviare variabile a PHP da ciclo in JS Javascript 0
A form PHP prenotazione tramite query PHP 2
A Form php prenotazione di un azienda sanitaria locale presso studio medico PHP 1
F menù select dinamico da db in php PHP 3
L Problemi form Pagina php HTML e CSS 3
L php mysql non salva solo id PHP 21
L php mysql cerca e visualizza pagina PHP 0
F Il codice php è giusto? PHP 2
R Aggiornare record mysql con Ajax, jQuery e php Ajax 2
A invio massivo dati a file php Javascript 4
Z MySql injection PHP PHP 1
V PHP form intersecate PHP 0
I [Offro][Retribuito] Programmatore Php Offerte e Richieste di Lavoro e/o Collaborazione 0
P Funzione jQuery Ajax invio file a php jQuery 1
C Dopo chiusura del tag php la stringa html va a capo PHP 1
E Transaction php PHP 11
B ciclare file xml con PHP PHP 1
L Estrazione dati php Database 6
A Aiuto per pagina php PHP 0
E Php select option e ajax PHP 23
I Aiuto php Dependent Lookup PHP 0
T arretramento versione PHP... PHP 3
D problema php mysql PHP 1
D problema php mysql PHP 1
E Barra di avanzamento codice PHP PHP 4
G creazione menu a tendina e invio a pagina php PHP 1
A inserire variabile php colore in div html PHP 2
Z Video protetto con PHP PHP 0
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
I Eecuzione di javascript in ciclo foreach php. PHP 7
S Libreria PHP per creare file dwg o dxf PHP 0
A [cerco - retribuito] Sviluppatore Php freelance per progetti vari Offerte e Richieste di Lavoro e/o Collaborazione 2
L Google chart php mysql PHP 2
R Download file multipli da directory php PHP 0
F pagina dinamica PHP PHP 3
P Rimozione automatica url da sitemap.xml con PHP PHP 1
L php tinymce mi duplica la classe label PHP 3
S Errore PHP - Notice: Undefined index ... PHP 14
N file manager da php 5 a 7 PHP 15
M Utilizzare la funzione mysql_num_rows() in PHP 5 PHP 3

Discussioni simili