Un piccolo aiuto su sql e php

di Gaming Designed il
12 risposte
Salve a tutti ho bisogno di un piccolo aiutino, sto creando una lista di nominativi e vorrei introdurre una barra di ricerca che mi possa permettere di cercare nella lista dei nomi in base al cognome, nome, numero di telefono, codice fiscale o città di residenza.
Ho creato quasi tutto, l'unica cosa è che quando vado a fare la ricerca non mi da nessun risultato, credo che io stia utilizzando la query sbagliata...

12 Risposte

  • Ciao dovresti postare codice html codice javascript e codice php

    Ritengo che se stai usando un metodo ajax dovresti avere il file php lato server e un file html + jquery o javascript lato client
  • Sono ancora inesperto, ho un file in php dove riesco a vedere la lista clienti tramite una query e sopra la tabella ho messo un form che si collega ad un file php che dovrebbe fungere da filtro di ricerca con la parola chieve che io vado ad inserire.

    questo è il form:

    <form method="post" action="cerca.php">
    <input type="text" name="testo" placeholder="CERCA CLIENTE" /><br />
    <input type="submit" value="CERCA" />
    </form>

    Questa invece è la pagina a cui è collegato il form:

    <?php
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "gestionale";

    // Create connection
    $conn = mysqli_connect($servername, $username, $password, $dbname);
    // Check connection
    if (!$conn)
    {
    die("Connection failed: " . mysqli_connect_error());
    }

    //Ricerca
    //recupero quello che hanno scritto
    $testo = $conn->real_escape_string($_GET['testo']);

    $sql_cerca = "SELECT * FROM `clienti` ORDER BY `COGNOME` ASC;";
    $result = mysqli_query($conn, $sql_cerca);

    if (mysqli_num_rows($result) > 0)
    { $testo=""; while($row = mysqli_fetch_assoc($result)) {
    $testo.= "<tr><td>" .$row["COGNOME"]. "</td><td>" . $row["NOME"]. "</td><td>" . $row["CF"]. "</td><td>" .$row["PARTITA_IVA"]. "</td><td>" .$row["CAP"]. "</td><td>" .$row["CITTA"]. "</td><td>" .$row["VIA"]. "</td><td>" .$row["TEL_FISSO"]. "</td><td>" .$row["CELLULARE"]. "</td><td>" .$row["CELLULARE2"]. "</td><td>" .$row["EMAIL"]. "</td><td>" .$row["NOTE"]. "</td></tr>";
    }
    }
    else { echo "0 results"; }
    ?>

    Ho provato ad informarmi ed inserire più query diverse però mi davano sempre errori diversi ad esempio: $sql_cerca = mysql_query("SELECT * FROM clienti WHERE (LIKE '%" . $COGNOME . "%'), a volte la variabile "COGNOME" ma non veniva riconosciuta.
  • $sql_cerca = "SELECT * FROM 'clienti' ORDER BY ''".$COGNOME."' ASC";

    OPPURE

    $sql_cerca = "SELECT * FROM 'clienti' LIKE ''%".$COGNOME."%' ";
  • In ogni caso io rifarei il connettore con PDO
  • Per scrivere la variabile dentro la query. apri viorgoletta singola ' poi apri doppia " poi .. poi " poi '
  • $testo = $conn->real_escape_string($_GET['testo']); perche' get testo se poi il form manda in POST?
  • $testo = $conn->real_escape_string($_POST['testo']);
  • xxrickyxx ha scritto:


    $sql_cerca = "SELECT * FROM 'clienti' ORDER BY ''".$COGNOME."' ASC";
    Non ha senso a meno che nella variabile non ci sia il nome di un campo, ed non servirebbero gli apici...

    xxrickyxx ha scritto:


    $sql_cerca = "SELECT * FROM 'clienti' LIKE ''%".$COGNOME."%' ";
    Qui manca il nome del campo prima del like: [CODE]$sql_cerca = "SELECT * FROM clienti WHERE cognome LIKE '%" . $COGNOME . "%' "; https://www.w3schools.com/sql/sql_like.as

    EDIT: ho rimosso gli apici che c'erano prima nel mio tag code...
  • Corretto @Sgrubak.
  • Ora mi da questo errore: Fatal error: Uncaught ArgumentCountError: mysqli_query() expects at least 2 arguments, 1 given in C:\xampp\htdocs\gestionale\cerca.php:19 Stack trace: #0 C:\xampp\htdocs\gestionale\cerca.php(19): mysqli_query('SELECT * FROM c...') #1 {main} thrown in C:\xampp\htdocs\gestionale\cerca.php on line 19
  • Beh... È piuttosto autoesplicativo, no? Leggi
  • Ho risolto grazie al vostro aiuto
Devi accedere o registrarti per scrivere nel forum
12 risposte