[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.320
88
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.320
88
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
L Problemi form Pagina php HTML e CSS 2
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
elpirata Update dinamico informazioni scritte in una pagina php jQuery 11
N Mysql_result per PHP 7 PHP 2
Emix Select concatenate php sql ajax PHP 2
P Modifica con PHP di un node in una sitemap xml PHP 0
D Come usare funzione php PHP 6
P Cancellazione specifici files in una folder php PHP 1
R Tradurre stringhe con php e google translator PHP 4
I Salvataggio snapshot IPCAM tramite PHP PHP 5
felino PHP e script generazione file excel PHP 2
L Aiuto per programma web php/mySQL PHP 2
A Estrapolare parti di testo con PHP PHP 2

Discussioni simili