[PHP] Problema search form

mistigress

Nuovo Utente
4 Gen 2019
3
0
0
Salve a tutti e buon 2019.

Ho un problema che spero possiate aiutarmi a risolvere, vi spiego il tutto in modo più possibile chiaro..

La mia necessità è avere un form di ricerca in cui poter inserire un'email e selezionare un value di una select option. Tali dati devono essere inviati via post al submit del form, in modo che sia eseguita una query di ricerca al database ( già popolato ) e che mi dia come output il risultato della query in medesimo file .php in cui c'è appunto la query.

Di seguito i due file creati:
1) file "conn.php" che instaura la connessione al database
2) file "search.php" in cui c'è il form e la query

file conn.php

PHP:
<?php
$host = "localhost";
$userName = "demo";
$password = "demo";
$dbName = "list_pec";

// Create database connection
$conn = new mysqli($host, $userName, $password, $dbName);

// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
?>


La connessione al database avviene correttamente. Il database è cosi creato e popolato:

Ho il db con nome list_pec e 4 tabelle con nome pec_1 , pec_2, pec_3 e pec_4 in queste ci sono differenti row tra cui: firstname, lastname, id_client, id_2client, email . In tali row ( per ogni tabella ) ci sono dati inseriti e corretti che appunto ho necessità di estrapolare ( email, id_client e id_2client ) dal database tramite il form di ricerca.

Di seguito il file search.php


PHP:
<?
error_reporting(E_ALL);
ini_set('display_errors', '1');
include("conn.php");

$search_output = "";
if (isset($_POST["submit"])){
   if($_POST['option']== "a"){
    $sqlcommand="SELECT email, id_client, id_2client FROM pec_1 WHERE email = 'email'";
    }

    else if ($_POST['option'] == "b"){
    $sqlcommand="SELECT email, id_client, id_2client FROM pec_2 WHERE email = 'email'";
    }

    else if ($_POST['option'] == "c"){
    $sqlcommand="SELECT email, id_client, id_2client FROM pec_3 WHERE email = 'email'";
    }

         else if ($_POST['option'] == "d"){
    $sqlcommand="SELECT email, id_client, id_2client FROM pec_4 WHERE email = 'email'";
    }



$query = mysqli_query($conn,$sqlcommand) or die (mysqli_error($conn));
$search_output .="<hr />query result: ";
if ($row = mysqli_fetch_array($query)){
   $email = $row ["email"];
   $pec = $row ["id_client"];
   $sdi = $row ["id_2client"];
   $search_output .= "<hr/><p> $email - $id_client - $id_2client</p>";


} else{
   $search_output= "<hr /> No Result";

}
}
?>
<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">

<title>Search id_client and id_2client</title>
</head>
<body>
   <section>
       <div class="container">
           <div class="row my-5">
               <h1>Search id_client and id_2client</h1>
           </div>
<form name="ricerca-pec" method="post" action="<?php echo $_SERVER ['PHP_SELF']; ?>">
  <div class="form-group">
   <label for="exampleFormControlInput1">Inserisci l'email del cliente</label>
   <input type="email" class="form-control" id="exampleFormControlInput1" placeholder="[email protected]" name="email">
  </div>
  <div class="form-group">
   <label for="exampleFormControlSelect1">Select Option</label>
   <select class="form-control" id="exampleFormControlSelect1" name="option">
     <option value="a">A</option>
     <option value="b">B</option>
     <option value="c">C</option>
     <option value="d">D</option>
   </select>
  </div>
  <input class="btn btn-primary" type="submit" name="submit"></input>
</form>

</div>
</section>

<section>
<div class="container">
<div class="row">
<p><?php echo $search_output; ?></p>
</div>
</div>
</section>


<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQx"</script>
</body>
</html>


Tutto funziona, o meglio, la query funzionerebbe ma sembra che non trovi nulla con la causale WHERE email = 'email' , come se non gli arrivasse tale dato con la richiesta post dal form. Infatti per prova ho modificato la query


PHP:
$sqlcommand="SELECT email, id_client, id_2client FROM pec_1 WHERE email = 'email'";

in

PHP:
 $sqlcommand="SELECT email, id_client, id_2client FROM pec_1 WHERE email = '[email protected]'";

in cui [email protected] è presente nella tabella pec_1 e ricevo dal form corretti risultati.

Vi chiedo cortesemente aiuto che sto impazzendo :(.

Grazie a tutti.
 

mistigress

Nuovo Utente
4 Gen 2019
3
0
0
Praticamente il problema sta sicuramente nella non inizializzazione delle variabili $email, e $option, perciò ho provato a riscrivere la parte del file search.php in tale modo inizializzandole e poi inserendo $email nella query, per semplicità ho lasciato solo una query e una option nella select form...:

PHP:
<?
error_reporting(E_ALL);
ini_set('display_errors', '1');
include("conn.php");

$search_output = "";
$email = " ";
$option = " ";


if (isset($_POST["submit"])){
   if($_POST['option']== "a"){
    $sqlcommand="SELECT email, id_client, id_2client FROM pec_1 WHERE email = '$email";
    }

    echo    $sqlcommand="SELECT email, id_client, id_2client FROM pec_1 WHERE email = '$email";

$query = mysqli_query($conn,$sqlcommand) or die (mysqli_error($conn));
$search_output .="<hr />query result: ";
if ($row = mysqli_fetch_array($query)){
   $email = $row ["email"];
   $pec = $row ["id_client"];
   $sdi = $row ["id_2client"];
   $search_output .= "<hr/><p> $email - $id_client - $id_2client</p>";


} else{
   $search_output= "<hr /> No Result";

}
}
?>

aggiungendo anche un echo che mi stampa la query eseguita ( come se ce ne fosse bisogno ), effettivamente non viene presa la variabile $email dalla richiesta POST a seguito del submit della form, questo poichè la query risultante è

PHP:
SELECT email, id_client, id_2client FROM pec _1 WHERE email = ''

datemi una mano :(
 

mistigress

Nuovo Utente
4 Gen 2019
3
0
0
Risolto...

come un' imbxxxxx non ho giustamente messo le variabili dopo il ciclo if, perciò ho riscritto

PHP:
$search_output = "";
$email = " ";
$option = " ";


if (isset($_POST["submit"])){
$email = $_POST["email"];
$option = $_POST["option"];
.
.
.
.

e lavora tutto correttamente, anche con il multioption da select. Ora vorrei ampliare tale codice inserendo degli input form per quei campi che non sono presenti nel database, pertanto le richieste sarebbero:

1) Eseguo la ricerca tramite il form e mi si stampano a video i dati email, id_client, id_2client ( attualmente funziona)
2) Se dopo il submit ci sono i dati id_client e id_2client ( o uno dei due mancanti ), dovrà uscirmi una input label con accanto bottone di "invio", per poter caricare da frontend il nuovo dato nel database.

Se comunque ( a livello di efficienza e sicurezza ) c'è qualche suggerimento da parte della community per poter migliorare l'attuale codice, ben venga.
 
Discussioni simili
Autore Titolo Forum Risposte Data
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
D problema php mysql PHP 1
D problema php mysql PHP 1
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
A Problema checkout carrello php PHP 2
G Problema caricamento tabelle MySql da PhP PHP 0
M Problema con php per calcolo costo percentuale PHP 7
O Problema Formmail in PHP su Aruba PHP 0
WebmasterFioriniAndrea Chat e php [problema] PHP 3
L [PHP] Problema con Telegram PHP 1
WebmasterFioriniAndrea [PHP] Problema che non mi fa vedere niente PHP 2
A [PHP] Problema query insert [RISOLTO] PHP 14
N [Apache] problema con estensione php Apache 0
C [PHP] Problema con download file PHP 0
M [PHP] Problema con preg_match PHP 1
gandalf1959 [PHP] problema con l'utilizzo di Header PHP 3
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
M [PHP] Problema con query select PHP 2
L Problema jQuery validation AJAX (PHP 7) PHP 6
L Problema funzione mail() PHP PHP 3
S [PHP] Problema con istruzione "use" PHP 23
A Problema PHP PHP 1
T [php] problema creazione query select-where PHP 5
M [PHP] problema if PHP 3
L [PHP] Problema su codice o server PHP 5
T [PHP] problema maggiore e minore PHP 4
Cosina [PHP] fwrite problema con le parole accentate PHP 9
F [PHP] Problema con number_format PHP 3
L [PHP] problema count messo in una funzione. PHP 1
P [PHP] Progettino CRUD di esercitazione. Problema su $_FILE. PHP 9
trattorino [PHP] problema entrata immagini insert PHP 1
C Apache Cordova problema con php Programmazione 1
trattorino problema raccapricciante php conteggio query PHP 4
T PHP+MYSQL: problema con quelle maledette lettere accentate... PHP 5
F [PHP] Problema con array multidimensionale PHP 4
F Problema con pagine login in PHP PHP 2
M [PHP] Problema script ricezione e invio posta... PHP 1
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
C [PHP] Problema Invio Email Elseif PHP 2
A [PHP] Problema invio mail con funzione mail() PHP 3
gandalf1959 problema con la codifica caratteri accentati e speciali tra php e mysql PHP 3
L [PHP] Problema Script 'Not Found' PHP 4
webmachine [PHP][MYSQL] Problema con le SELECT PHP 5
alessandra86 [PHP] Popolamento database con form ricorsivi - problema array (foreach ) PHP 5
MattiaBL [PHP] Problema ciclo while PHP 3
dvdscr [PHP] Problema malfunzionamento Wordpress WordPress 13
O [PHP] Problema Button in form PHP 1
C [PHP] problema con un esercizio PHP 2
P [PHP] Problema con accenti ed apostrofi PHP 0
E Problema refresh PHP PHP 3

Discussioni simili