Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    estrarre parole con parti uguali da database

    Ciao a tutti,
    vorrei poter estrarre da un database parole con parti comuni, mi spiego meglio:
    ho un form di ricerca, inserisco per esempio la parola "secchio",
    vorrei che, oltre alla parola "secchio", mi desse come risultato a video la parola "secchio da muratore", "secchio per l'acqua" ecc.

    Ora sto usando questo codice (che non fa ciò che chiedo sopra):
    Codice PHP:
    <?php// Reads word from GET or POST$aParola = null;if (isset($_REQUEST['Parola']) && !empty($_REQUEST['Parola'])) {    $aParola = $_POST['Parola'];}else {    die("Manca la parola");}
    // Connects to database$connection = mysqli_connect("localhost", "xxxxxx", "my_xxxxxx", "my_xxxxxx");if (!$connection) {   die("Impossibile connettersi alla base di dati: " . mysqli_connect_error());}
    // Reads word from database$query = "SELECT * FROM dizgeagri WHERE Parola = '$aParola'";$result = mysqli_query($connection, $query);if (!$result) {    die("Errore nella query: " . mysqli_error($connection));}$row = mysqli_fetch_array($result);
    // Redirects if word is not in the databaseif (!$row) {    header("location: diz_ines.html");    exit;}
    // Altrimenti se la parola è disponibile$traduzione = $row['Traduz'];$note = $row['note'];$categoria = $row['categ'];$immagine = $row['img'];$immagine_2 = $row['img2'];
    $link stristr($anote'vedi')    ? 'dizge_rich-dati.php?Parola=' substr($anote, -strlen($anote) + 5)    : null;
    // Closes connection to databasemysqli_free_result($result);mysqli_close($connection);?>
    Come posso fare?
    Grazie a chi mi risponderà
    La vita è una tempesta, prenderlo in .... è un lampo!
    Paolino

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Ciò che ti serve non c'entra con PHP, ma ti serve la query giusta, che è argomento database, quindi sposto.

    Devu usare la clausola LIKE nella query.

  3. #3
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Devu usare la clausola LIKE nella query.
    Grazie per rispondermi.
    Ho provato così
    Codice PHP:
    $query "SELECT * FROM dizgeagri WHERE [Parola = '$aParola' LIKE = '$aParola%']";
    $result mysqli_query($connection$query);
    if (!
    $result) {
        die(
    "Errore nella query: " mysqli_error($connection));
    }
    $row mysqli_fetch_array($result); ... 
    Mi esce questo: Errore nella query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[Parola = 'secchio' LIKE = 'secchio%']' at line 1
    Ho cercato sul web vari esempi su come usare LIKE, ho fatto diverse prove ma niente!
    Dove sbaglio?
    La vita è una tempesta, prenderlo in .... è un lampo!
    Paolino

  4. #4
    non so dove hai guardato, ma la LIKE funziona in un modo ben definito

    $query = "SELECT * FROM dizgeagri WHERE [Parola LIKE '$aParola%']"; -- tutto ciò che INIZIA con aParola
    $query = "SELECT * FROM dizgeagri WHERE [Parola LIKE '%$aParola']"; -- tutto ciò che FINISCE con aParola
    $query = "SELECT * FROM dizgeagri WHERE [Parola LIKE '%$aParola%']"; -- tutto ciò che CONTIENE aParola

  5. #5
    Quote Originariamente inviata da optime Visualizza il messaggio
    non so dove hai guardato, ma la LIKE funziona in un modo ben definito

    $query = "SELECT * FROM dizgeagri WHERE [Parola LIKE '$aParola%']"; -- tutto ciò che INIZIA con aParola
    ...
    Grazie per rispondermi. Ho guardato qui http://www.parlandosparlando.com/vie...ua_0/whoisit_1 e qui https://www.w3schools.com/sql/sql_like.asp ma forse non ho capito o forse non mi sono spiegato bene. Ci riprovo.

    Ho una tabella chiamata dizgeagri in un database, ho i campi "Parola", "Traduz", "note", ecc. Nel campo "Parola" posso avere per esempio, "secchio" con relativa traduzione, ma posso avere anche il campo "secchio per l'acqua" con relativa Traduzione, ecc.
    Vorrei che inserendo, nel form di ricerca di una pagina.php , la parola "secchio" mi desse come risultato
    "secchio" con relativa traduzione, poi nella seconda riga mi desse anche "secchio per l'acqua" con rel. trad.
    Ho provato con
    Codice PHP:
    $query "SELECT * FROM dizgeagri WHERE [Parola LIKE '$aParola%']"
    ma mi dà Errore nella query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[Parola LIKE 'secchio%']' at line 1
    Ho la versione MySQL 5.6, uso mysqli_query, stampo il risultato con
    Codice PHP:
    <?php echo $aParola?>
    Se serve posso postare l'intero codice.
    Grazie per la pazienza
    La vita è una tempesta, prenderlo in .... è un lampo!
    Paolino

  6. #6
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,344
    codice:
    $query = "SELECT * FROM dizgeagri WHERE Parola LIKE '$aParola%'";
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  7. #7
    Grazie badaze.
    Mi estrae (giustamente) la parola "secchio" con traduzione, ma NON la parola "secchio per l'acqua"...
    forse manca qualcosa qui
    codice HTML:
    <b><?php echo $aParola; ?> </b>
    ? O da qualche altra parte?
    La vita è una tempesta, prenderlo in .... è un lampo!
    Paolino

  8. #8
    non devi stampare aParola (che è il tuo termine di ricerca), ma quello che leggi dal db

  9. #9
    Ho provato alcune soluzioni ma, dato la mia scarsa conoscenza php, senza risultati.... non è che saresti così gentile da dirmi come posso fare per stampare quel che leggo dal db?
    Grazie
    La vita è una tempesta, prenderlo in .... è un lampo!
    Paolino

  10. #10
    Quote Originariamente inviata da Poulo Visualizza il messaggio
    Ho provato alcune soluzioni ma, dato la mia scarsa conoscenza php, senza risultati.... non è che saresti così gentile da dirmi come posso fare per stampare quel che leggo dal db?
    Grazie
    credo sia più corretto porre queste domande nel forum php

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.