Visualizzazione risultati 1 fino 14 di 14

Discussione: cercare nel database

  1. #1
    Guest

    Predefinito cercare nel database

    ciao
    dove sbaglio...
    Codice PHP:
    <?php
    if($_POST[submit]){
    mysql_connect("localhost", "zappi", "zappi") or die("Could not connect: " . mysql_error());
    mysql_select_db("my_zappi");
    $result = mysql_query("SELECT * FROM contatti_msn WHERE
    nickname="
    .$_POST[nickname]." || contatto =".$_POST[contatto]." ||
    sesso ="
    .$_POST[sesso]." || citta =".$_POST[citta]." ||
    interessi ="
    .$_POST[interessi]." || descrizione =".$_POST[descrizione]."");

    while(
    $row = mysql_fetch_array($result)){
    echo
    '
    <table width="100%" border="0">
    <tr>
    <td>Nickname:</td>
    <td>Contatto:</td>
    <td>Descrizione:</td>
    <td>Data Di Nascita:</td>
    <td>Regione:</td>
    <td>Città:</td>
    <td>Interessi:</td>
    <td>Sesso:</td>
    </tr>
    <tr>
    <td>$row[nickname]</td>
    <td>$row[contatto]</td>
    <td>$row[descrizione]</td>
    <td>$row[data1]/$row[data2]/$row[data3]</td>
    <td>$row[regione]</td>
    <td>$row[citta]</td>
    <td>$row[interessi]</td>
    <td>$row[sesso]</td>
    </tr>
    </table>'
    ;
    }
    mysql_free_result($result);
    }
    ?>

  2. #2
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Zappi cancella la tua password (se è quella) dal codice PHP e prova così:
    Codice PHP:
    <?php
    if($_POST[submit]){
    mysql_connect("localhost", "zappi", "") or die("Could not connect: " . mysql_error());
    mysql_select_db("my_zappi");
    $result = mysql_query("SELECT * FROM contatti_msn WHERE
    nickname='"
    .$_POST[nickname]."' OR contatto ='".$_POST[contatto]."' OR
    sesso ='"
    .$_POST[sesso]."' OR citta ='".$_POST[citta]."' OR
    interessi ='"
    .$_POST[interessi]."' OR descrizione ='".$_POST[descrizione]."'");

    while(
    $row = mysql_fetch_array($result)){
    echo
    '
    <table width="100%" border="0">
    <tr>
    <td>Nickname:</td>
    <td>Contatto:</td>
    <td>Descrizione:</td>
    <td>Data Di Nascita:</td>
    <td>Regione:</td>
    <td>Città:</td>
    <td>Interessi:</td>
    <td>Sesso:</td>
    </tr>
    <tr>
    <td>$row[nickname]</td>
    <td>$row[contatto]</td>
    <td>$row[descrizione]</td>
    <td>$row[data1]/$row[data2]/$row[data3]</td>
    <td>$row[regione]</td>
    <td>$row[citta]</td>
    <td>$row[interessi]</td>
    <td>$row[sesso]</td>
    </tr>
    </table>'
    ;
    }
    mysql_free_result($result);
    }
    ?>
    [OT]Il tuo codice assomiglia molto alla struttura del mio scambio contatti sai?[/OT]
    Ultima modifica di miki92 : 26-08-2009 alle ore 23.28.04
    Apprezzi l'aiuto? Offrimi un caffè!

  3. #3
    Guest

    Predefinito

    non funziona stampa a vuoto le variabili $row[nickname]

    ot.
    ci può assomigliare ma il mio lo sto facendo tipo registrazione sito per dopo....XD

  4. #4
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Non sai che le variabili in PHP non vengono valorizzate tra gli apici semplici?:

    Sostituisci questa parte:
    Codice PHP:
    echo '
    <table width="100%" border="0">
    <tr>
    <td>Nickname:</td>
    <td>Contatto:</td>
    <td>Descrizione:</td>
    <td>Data Di Nascita:</td>
    <td>Regione:</td>
    <td>Città:</td>
    <td>Interessi:</td>
    <td>Sesso:</td>
    </tr>
    <tr>
    <td>$row[nickname]</td>
    <td>$row[contatto]</td>
    <td>$row[descrizione]</td>
    <td>$row[data1]/$row[data2]/$row[data3]</td>
    <td>$row[regione]</td>
    <td>$row[citta]</td>
    <td>$row[interessi]</td>
    <td>$row[sesso]</td>
    </tr>
    </table>'
    ;
    }
    Con:
    Codice PHP:
    echo '
    <table width="100%" border="0">
    <tr>
    <td>Nickname:</td>
    <td>Contatto:</td>
    <td>Descrizione:</td>
    <td>Data Di Nascita:</td>
    <td>Regione:</td>
    <td>Città:</td>
    <td>Interessi:</td>
    <td>Sesso:</td>
    </tr>
    <tr>
    <td>'
    .$row[nickname].'</td>
    <td>'
    .$row[contatto].'</td>
    <td>'
    .$row[descrizione].'</td>
    <td>'
    .$row[data1].'/'.$row[data2].'/'.$row[data3].'</td>
    <td>'
    .$row[regione].'</td>
    <td>'
    .$row[citta].'</td>
    <td>'
    .$row[interessi].'</td>
    <td>'
    .$row[sesso].'</td>
    </tr>
    </table>'
    ;
    }
    Apprezzi l'aiuto? Offrimi un caffè!

  5. #5
    Guest

    Predefinito

    non funziona perche mi stampa tutti i risultarti....^^

  6. #6
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Beh grazie, se tu esegui una query dove gli dici "cerca nel database i campi dove la città è Procida o la provincia è Napoli" e poi inserisci tutto in un while mi sembra logico che PHP ti mostri "Procida, Ischia e Capri" no?

    Al massimo prova ad aggiungere un limite:
    Codice PHP:
    $result = mysql_query("SELECT * FROM contatti_msn WHERE
    nickname='"
    .$_POST[nickname]."' OR contatto ='".$_POST[contatto]."' OR
    sesso ='"
    .$_POST[sesso]."' OR citta ='".$_POST[citta]."' OR
    interessi ='"
    .$_POST[interessi]."' OR descrizione ='".$_POST[descrizione]."' LIMIT 1");
    Apprezzi l'aiuto? Offrimi un caffè!

  7. #7
    Guest

    Predefinito

    non sta funzionando
    questo e il codice
    mi mostra sempre il primo risultato anche se ho scelto femmina lui mi da maschio..
    Codice PHP:
    <?php
    if($_POST[submit]){
    mysql_connect("localhost", "zappi", "") or die("Could not connect: " . mysql_error());
    mysql_select_db("my_zappi");
    $result = mysql_query("SELECT * FROM contatti_msn WHERE
    nickname='"
    .$_POST[nickname]."' OR contatto ='".$_POST[contatto]."' OR
    sesso ='"
    .$_POST[sesso]."' OR citta ='".$_POST[citta]."' OR
    interessi ='"
    .$_POST[interessi]."' OR descrizione ='".$_POST[descrizione]."' LIMIT 1");

    echo
    '
    <table width="100%" border="0">
    <tr>
    <td>Nickname:</td>
    <td>Contatto:</td>
    <td>Descrizione:</td>
    <td>Data Di Nascita:</td>
    <td>Regione:</td>
    <td>Città:</td>
    <td>Interessi:</td>
    <td>Sesso:</td>
    </tr>'
    ;
    while(
    $row = mysql_fetch_array($result)){
    echo
    '
    <tr>
    <td>'
    .$row[nickname].'</td>
    <td>'
    .$row[contatto].'</td>
    <td>'
    .$row[descrizione].'</td>
    <td>'
    .$row[data1].'/'.$row[data2].'/'.$row[data3].'</td>
    <td>'
    .$row[regione].'</td>
    <td>'
    .$row[citta].'</td>
    <td>'
    .$row[interessi].'</td>
    <td>'
    .$row[sesso].'</td>
    </tr>'
    ;
    }
    echo
    "</table>";
    mysql_free_result($result);
    }
    ?>

  8. #8
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Per forza ti esce solo il primo risultato... sei tu che glielo chiedi attraverso la query: devi rimuovere la clausola "LIMIT 1"...

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  9. #9
    Guest

    Predefinito

    si lo so se levo limit 1 se scelgo femmina me li da tutti
    se lo metto limit 1 se scelgo femmina mi da il primo che e maschio...

  10. #10
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Devi impostare meglio le condizioni...te l'ho detto se tu gli dici "o questo o quello" esso ti estrae (grazie al while) tutti i record dove c'è 1 delle parole chiavi richieste.
    Apprezzi l'aiuto? Offrimi un caffè!

  11. #11
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Citazione Originalmente inviato da miki92 Visualizza messaggio
    Devi impostare meglio le condizioni...te l'ho detto se tu gli dici "o questo o quello" esso ti estrae (grazie al while) tutti i record dove c'è 1 delle parole chiavi richieste.
    Provo a spiegartelo un po' meglio, legando le condizioni con OR, stai facendo l'unione dei seguenti sottoinsiemi di contatti:
    - quelli che hanno nickname uguale a quello dato
    - quelli che hanno il contatto uguale a quello dato
    - quelli che hanno il sesso uguale a quello dato
    - quelli che hanno la città uguale a quella data
    - quelli che hanno gli interessi uguali a quelli dati
    - quelli che hanno la descrizione uguale a quella data

    Il risultato? Se non otterrai tutto l'insieme di contatti (che per appartenere all'unione di insiemi, ti ricordo, basta che una sola delle caratteristiche corrisponda), molto probabilmente ci arriverai molto vicino...

    Cosa puoi fare? Legando le opzioni con AND realizzi l'intersezione, in questo modo perché esca un contatto tutte le caratteristiche sopra devono corrispondere a quelle date. Se devi cercare solo per alcune caratteristiche, le altre non devi includerle nella query: quindi, valuta l'uso di funzioni (PHP) tipo isset() e costruisci la query in base alle condizioni che ricevi...

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  12. #12
    Guest

    Predefinito

    io vorrei fare se la persona mette più dati la ricerca viene migliorata ma il problema e come impostarlo sta ricerca........

  13. #13
    Guest

    Predefinito

    Codice PHP:
    $query = "SELECT * FROM contatti_msn WHERE nickname='" . $_POST["nickname"] . "'";

    if(isset(
    $_POST["contatto"]) && !empty($_POST["contatto"]))
    $query .= "AND contatto ='". $_POST["contatto"] . "'";
    if(isset(
    $_POST["sesso"]) && !empty($_POST["sesso"]))
    $query .= "AND sesso ='" . $_POST["sesso"] . "'";
    if(isset(
    $_POST["citta"]) && !empty($_POST["citta"]))
    $query .= "AND citta ='". $_POST["citta"] . "'";
    if(isset(
    $_POST["interessi"]) && !empty($_POST["interessi"]))
    $query .= "AND interessi LIKE '%" . $_POST["interessi"]. "%'";
    if(isset(
    $_POST["descrizione"]) && !empty($_POST["descrizione"]))
    $query .= "AND descrizione LIKE '%" . $_POST["descrizione"] . "%'";
    Io avrei fatto qualcosa del genere, rendi obbligatorio l'inserimento del nickname, e se un utente vuole aggiunge dei campi facoltativi che possono migliorare il risultato della ricerca, se questi campi ci sono gli aggiungi alla query.

    Saluti!

  14. #14
    Guest

    Predefinito

    tu dici una cosa del genere il problema se uno non sa il nome
    Codice PHP:
    <?php
    if($_POST[submit]){
    mysql_connect("localhost", "zappi", "") or die("Could not connect: " . mysql_error());
    mysql_select_db("my_zappi");
    $result = mysql_query("SELECT * FROM contatti_msn WHERE nickname='" .$_POST["nickname"]. "'");

    if(isset(
    $_POST["contatto"]) && !empty($_POST["contatto"]))
    $result .= "AND contatto ='".$_POST["contatto"]."'";

    if(isset(
    $_POST["sesso"]) && !empty($_POST["sesso"]))
    $result .= "AND sesso ='".$_POST["sesso"]."'";

    if(isset(
    $_POST["citta"]) && !empty($_POST["citta"]))
    $result .= "AND citta ='".$_POST["citta"]."'";

    if(isset(
    $_POST["interessi"]) && !empty($_POST["interessi"]))
    $result .= "AND interessi LIKE '%".$_POST["interessi"]."%'";

    if(isset(
    $_POST["descrizione"]) && !empty($_POST["descrizione"]))
    $result .= "AND descrizione LIKE '%".$_POST["descrizione"]."%'";

    echo
    '
    <table width="100%" border="0">
    <tr>
    <td>Nickname:</td>
    <td>Contatto:</td>
    <td>Descrizione:</td>
    <td>Data Di Nascita:</td>
    <td>Regione:</td>
    <td>Città:</td>
    <td>Interessi:</td>
    <td>Sesso:</td>
    </tr>'
    ;

    while(
    $row = mysql_fetch_array($result)){
    echo
    '
    <tr>
    <td>'
    .$row[nickname].'</td>
    <td>'
    .$row[contatto].'</td>
    <td>'
    .$row[descrizione].'</td>
    <td>'
    .$row[data1].'/'.$row[data2].'/'.$row[data3].'</td>
    <td>'
    .$row[regione].'</td>
    <td>'
    .$row[citta].'</td>
    <td>'
    .$row[interessi].'</td>
    <td>'
    .$row[sesso].'</td>
    </tr>'
    ;
    }
    echo
    "</table>";
    mysql_free_result($result);
    }
    ?>

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •