rendere il codice più funzionale

emanuelb

Nuovo Utente
25 Mar 2007
21
0
0
Ciao ragazzi!
come da titolo, un niubbo vi chiede un parere, come posso ottimizzare questo script? A parte il fatto che mancherebbe la parte di validazione dell'array $array che pensavo di ottenere con un if ($array[]=0) echo "nessun valore" else {prosegui con lo script} (ditemi se ho pensato bene).
PHP:
<?php
 
 //recupero codice
 $id = $_POST['codcliente'];
 $id2= $_POST['prodotto'];
 $id3= $_POST['industry'];
 if(!empty($id)){
  $query= "SELECT * FROM ch WHERE id  LIKE ".$id; 
 }
 else{
  $query= "SELECT * FROM ch WHERE prodotto LIKE '$id2%' "; 
 }
 if(empty($id) && empty($id2)){
 
 $query= "SELECT * FROM ch WHERE Industry LIKE '%$id3%' ";
 
 }
 if (empty($id) && empty ($id2) && empty($id3)){
 

     die("Selezionare un criterio di ricerca") ;
 }
 //connessione al DB
 $dbc = mysql_connect('localhost', 'root','root','CH_db')
 or die('Errore di connessione al db');
 $db = mysql_select_db('CH_db');  
 
 
 //query al db
 $result=mysql_query($query); 

    if(!empty($result)){
 
             $array= mysql_fetch_row ($result);
			 
			 $numfield=mysql_num_fields($result);
			  
			  echo "<table border=1><tr>";
			  echo "<th><b>Azienda</b></th>";    
			  echo "<th><b>codice cliente</b></th>";
			  echo "<th><b>prodotto</b></th>";
			  echo "<th><b>scad contratto</b></th>";
			  echo "<th><b>referente</b></th>";
			  echo "<th><b>num referente</b></th>";
			  echo "<th><b>commerciale</b></th>";
			  echo "<th><b>limitazioni lib</b></th>";
			  echo "<th><b>note limitazionib></th>";
			  echo "<th><b>scad. liberatoria</b></th>";
			  echo "<th><b>area</b></th>";
			  echo "<th><b>provincia</b></th>";
			  echo "<th><b>industry</b></th>";
			  echo  "</tr>";
			 
			 
			 foreach ($array as $campo) {
			 
			 echo  "<td>$campo</td>";       
			 }
			 echo "</tr></table>"; 
             
			




   }else{
   
              echo "Issues trying to fetch results. Check the error-->" . mysql_error();
   
            }
 
 
 
?>
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,
io la prima parte la farei piu o meno cosi:
PHP:
<?php

//recupero codice
// mettiamo un minimo di controllo
$id = (int) $_POST['codcliente'];
$id2 = mysql_real_escape_string($_POST['prodotto']);
$id3 = mysql_real_escape_string($_POST['industry']);

if (empty($id) && empty($id2) && empty($id3)) {
    die("Selezionare un criterio di ricerca");
}
// creiamo la query su misura
$query = "SELECT * FROM ch WHERE 1";
if (isset($id) && $id > 0) {
    $query.= " && id = $id";
}
if (isset($id2) && !empty($id2)) {
    $query.= " && prodotto LIKE '$id2%'";
}
if (isset($id3) && !empty($id3)) {
    $query.= " && Industry LIKE '%$id3%'";
}

//connessione al DB .........

che ne pensi?
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Un suggerimento: usa il php solo quando è realmente necessario.
Quindi nella parte centrale, dove crei la tabella ti consiglio di chiudere il php e scrivere direttamente in HTML.
 

emanuelb

Nuovo Utente
25 Mar 2007
21
0
0
Ciao,
io la prima parte la farei piu o meno cosi:
PHP:
<?php

//recupero codice
// mettiamo un minimo di controllo
$id = (int) $_POST['codcliente'];
$id2 = mysql_real_escape_string($_POST['prodotto']);
$id3 = mysql_real_escape_string($_POST['industry']);

if (empty($id) && empty($id2) && empty($id3)) {
    die("Selezionare un criterio di ricerca");
}
// creiamo la query su misura
$query = "SELECT * FROM ch WHERE 1";
if (isset($id) && $id > 0) {
    $query.= " && id = $id";
}
if (isset($id2) && !empty($id2)) {
    $query.= " && prodotto LIKE '$id2%'";
}
if (isset($id3) && !empty($id3)) {
    $query.= " && Industry LIKE '%$id3%'";
}

//connessione al DB .........

che ne pensi?




Penso che hai perfettamente ragione, grazie Criric! Non capisco solo l'utilizzo della riga
PHP:
$query = "SELECT * FROM ch WHERE 1
sulla parte di documentazione che ho io non la trovo...
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Quella query, essendo WHERE 1 sempre vero, seleziona tutte le tuple della tabella ch.
Ma se controlli successivamente lui aggiunge a $query altri controlli al WHERE con && (visto che la
Condizione WHERE 1 è una tautologia allora ne aggiunge un'altra con 'and' per far si che sia vera solo quando anche l'altra è vera).
Aggiunge anche l'operatore like che spero tu sappia cosa sia ;)
 
Discussioni simili
Autore Titolo Forum Risposte Data
L Rendere una parte trasparente Photoshop 3
D Rendere testo cliccabile PHP 3
P Aiuto per rendere un Bot Telegram Privato PHP 1
G Rendere dati di una tabella mysql link PHP 22
S [PHP] Rendere visibile variabile di un costrutto if in un altro costrutto if PHP 1
Domenico_Falco1 Rendere dinamico un sito web con chiamate ajax e php e variabili json PHP 12
S rendere mio sito mobile compatibile Offerte e Richieste di Lavoro e/o Collaborazione 2
axem [PHP]rendere cliccabile contenuto PHP 10
R [Javascript] Rendere una funzione sempre visibile Javascript 2
T [PHP] rendere facoltativo il caricamento di un file PHP 5
G [Javascript] rendere visibile un iframe dopo l'avvenuto caricamento del video che esso contiene Javascript 4
S [Javascript] Nascondere e rendere visibile un Div cliccando su due link Javascript 2
ecosito [HTML ][PHP] rendere attivo il modulo contatti di un template HTML e CSS 9
M Come rendere solo lettura campo textarea PHP 2
S Rendere responsive un player che ha dimensioni fisse HTML e CSS 3
Shyson Rendere select obbligatoria Javascript 1
T Rendere inaccessibile il forum agli utenti non registrati phpBB 4
M Tumblr - Rendere cliccabili tutte le immagini HTML e CSS 4
Z Rendere visibile un pulsante HTML e CSS 1
G rendere visibile con php cartella public aruba Hosting 2
simonetta619 creare una classe per rendere dinamico l'inserimento PHP 0
G [VENDO] Servizi Pubblicitari Per Youtube (Per Rendere Conosciuto Vostro Video/Canale) Vendere e Acquistare pubblicita' online 0
G [VENDO] Servizi Pubblicitari Per Youtube (Per Rendere Conosciuto Vostro Video/Canale) Annunci servizi di Social Media Marketing 0
G [VENDO] Servizi Pubblicitari Per Youtube (Per Rendere Conosciuto Vostro Video/Canale) Annunci servizi di Social Media Marketing 0
M rendere attivo un oggetto CSS tramite javascript Javascript 3
Frank10 Script o qualsiasi cosa per rendere autonomo chi vuole modificare contenuti PHP 3
D Come posso rendere obbligatorio un drop down menu? Javascript 12
Athene Rendere visibile un errore in una pagina di login in due modi differenti PHP 8
M [htaccess] Rendere accessibile solo la pagina riscritta Web Server 0
asevenx rendere visibili e nascondere DIV con onlink Javascript 12
S Rendere sito visibile solo in Italia Hosting 0
M Consigli su come rendere fluido questo template HTML e CSS 0
P HTML - rendere cliccabile parte del testo HTML e CSS 2
Z [AS3] Rendere attivo pulsante dentro animazione di altro pulsante Flash 0
H Rendere cliccabile l'header HTML e CSS 10
X rendere visibile ad un determinato id PHP 2
C [JAVA]Come rendere opzionale un parametro di un costruttore? Java 3
M rendere menu "sopra al testo" Flash 1
f.quintaliani rendere un tratto irregolare come se fosse fatto a mano Webdesign e Grafica 6
S rendere campi form obbligatori Javascript 1
G Come posso rendere invisibili cartelle e file sul web PHP 0
C php, rendere cliccabile un link PHP 0
peppoweb Manuale on-line da Microsoft per rendere sicuri i server Windows e Software 0
M Analisi sito per pulire codice inutile HTML e CSS 1
JeiMax Modifica codice php personalizzato PHP 2
R Dubbi su siti sviluppati con Wordpress e con codice WordPress 6
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
L Php_aggiornamento codice PHP 3
Shyson Codice wp-login non funziona PHP 2
G Codice html Javascript 1

Discussioni simili