[PHP] Difficoltà con costrutto if/else

samurai.sette

Utente Attivo
17 Dic 2015
235
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
141
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.343
91
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
141
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.343
91
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
F Cerco Hosting con VECCHIE versioni di php Hosting 0
Cosina Captcha php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
N php msyql PHP 6
N php problemi a visualizzare video PHP 3
A menu a tendina php PHP 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
F Php date_diff PHP 1
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
C Wp-admin a file php WordPress 5
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
csi Inviare file jpg in locale alla stampante con php PHP 0
M Passaggio variabili array php su un tasto jq PHP 3
E Php aggiornamento tabella PHP 9
G phpmailer e php 8.1 con estensione mysqli PHP 6
M Invio dati database via email php PHP 0
K [php] Problema con inner join PHP 4
K [php]form invio dati PHP 0
P Codifica caratteri speciali mysql php PHP 0
K [PHP] Problema con variabili concatenate. PHP 1
E Stampante termica escpos-php PHP 6
JeiMax Modifica codice php personalizzato PHP 2
G Come modificare un pdf in php PHP 1
U Link a doppio file PHP PHP 0
E PHP & jQuery PHP 8
N Passare array da php a javascript PHP 5
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
U PHP creare un file excel dopo ricerca nel DB PHP 0
M PHP/MySQL - Estrarre valori min e max di ogni gruppo PHP 5
F Php e fatturazione elettronica PHP 0
P lanciare script asp (o php) da jquery Javascript 1
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
P Data scraping in PHP non funziona PHP 4
C Calcoli matematici in php PHP 5
F Scrivere dei dati in word con php PHP 0
D PHP leggere cartella di Windows PHP 1
I dominio aruba versione php server linux Domini 3
G Colorare menu select attraverso ricerca php PHP 0
L PHP motore di ricerca nel sito PHP 1
S PHP e Mysqli PHP 0
Y Stampare da php su un foglio A6 attraverso una stampante esterna PHP 1
M Visulizzare immagine con php PHP 8
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
G leggere file txt e stampare con php il contenuto a video PHP 7
F Ricreare struttura php+mysql su Xampp Apache 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0

Discussioni simili