Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074

    where ... like: non funziona

    Problema:
    ho questo codice
    Codice PHP:
    if ($search !== "") {
            
    $sql "SELECT * FROM `feed` WHERE `titolo` LIKE '%$search%' ";
            
    $result mysql_query($sql);
            
    $nr mysql_num_rows($result);
            if (
    $nr>0) {
                    echo 
    "NO SEARCH VALUE";
                } else {
                    echo 
    ">> <a href=\"onefeed.php?feed=" $row["feed_id"] . "\">" $row["titolo"] . "</a>
    "
    ;
                }

    ma quando faccio un test, anche se il valore passato alla variabile $search è sicuramente presente all'interno di uno dei campi titolo della tabella, il risultato è sempre "NO SEARCH VALUE".
    Ad esempio, se il valore passato è
    Digital Art
    e nel database è presente questo titolo
    New Media/Digital Art: Undisclosed Recipients at FLEFF 2007
    il risultato è appunto "NO SEARCH VALUE".

    Perchè mai?
    metatad
    graphic & web design

  2. #2
    Prova così:
    Codice PHP:
    if ($search !== "") {
            
    $sql "SELECT * FROM `feed` WHERE `titolo` LIKE '%$search%' ";
            
    $result mysql_query($sql);
            
    $nr mysql_num_rows($result);
            if (
    $nr<0) {
                    echo 
    "NO SEARCH VALUE";
                } else {
                    echo 
    ">> <a href=\"onefeed.php?feed=" $row["feed_id"] . "\">" $row["titolo"] . "</a>
    "
    ;
                }


  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    si, così funziona (mi spieghi perchè?), però è emerso un'altro problema: se nel db ci sono più titoli che contengono il valore passato con la variabile $search (nell'esempio: Digital Art), me ne restituisce uno solo, e non tutti.

    ...
    metatad
    graphic & web design

  4. #4
    allora per quanto riguarda la correzione dell'errore semplicemente era una "svista".
    Quello che fa mysql_num_rows() è contare quante righe sono state recuperate da una query.
    Tu avevi detto se le righe recuperate sono più di 0 allora stampa "NO SEARCH VALUE", nyo89 ti ha corretto il > con il <... tutto qui

    Per quanto riguarda i risultati devi impostare un ciclo while (ti riposto tutto il codice con il ciclo):
    (tra l'altro la variabile $row da dove la prendi?! )
    Codice PHP:
    if ($search !== "") {
            
    $sql "SELECT * FROM `feed` WHERE `titolo` LIKE '%$search%' ";
            
    $result mysql_query($sql);
            
    $nr mysql_num_rows($result);
            if (
    $nr<1) { //Ti ho corretto anche questa, visto che i valori restituiti da mysql_num_rows() vanno da 0 in su
                    
    echo "NO SEARCH VALUE";
                } else {
             while(
    $row mysql_fetch_array($result))
             { 
                    echo 
    ">> <a href=\"onefeed.php?feed=" $row["feed_id"] . "\">" $row["titolo"] . "</a>
    "
    ;
             }
                }

    e va a capo ad ogni link (giusto perchè c'è il
    )
    ciao
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Perfetto, grazie per avermi chiarito+risolto sul secondo punto.
    Per quanto riguarda invece il < piuttosto che >, avevo ben visto che era questa la variazione, ma non capivo (e non capisco...) perchè in un modo funziona e nell'altro no.
    Se $var>0 (come dire x maggiore di 0) non funziona, e $var<0 (come dire x minore di 0) invece si, io rimango perplesso.
    Quello che fanno entrambe è verificare che il valore passato dalla variabile $var sia diverso da 0; anzi, mi sembra più logico che, se i due valori sono differenti, è perchè $var è maggiore di 0 (è stata trovata qualche corrispondenza, quantificata nella variabile).
    O no?
    metatad
    graphic & web design

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 © 2025 vBulletin Solutions, Inc. All rights reserved.