Visualizzazione risultati 1 fino 4 di 4

Discussione: problemi con alcune query mySQL per motore di ricerca

  1. #1
    Guest

    Exclamation problemi con alcune query mySQL per motore di ricerca

    ragazzi allora questo è un problema un po' serio...
    allora io devo contare quanti oggetti il motore di ricerca mi ha selezionato
    dal database... avevo in mente una query di questo tipo:
    SELECT count(DISTINCT notizia)"%parola%" AS tot FROM news
    però sembra che non funzioni... ci tengo a precisarvi che l'SQL non lo conosco tanto... ho cercato di commentare le zone calde della pagina...
    in realtà mi interessa solo che mi diciate come andrebbe impostata la query per contare quante righe della tabella del database contengono una cella con dentro, oltre ad altre parole, una data parola che ho ricercato...
    siate tempestivi plz perché altrimenti mando all'aria tutta la mia tabella di marcia...grazie mille in anticipo
    Codice PHP:
    <?php
    //questo non interessa voi
    session_start();
    $_SESSION['mode']="searchnews";
    //inizia la pagina
    $parole=trim($_GET['search']);
    $start=$_GET['start'];
    //LA FUNZIONE CONTENUTO VIENE ESEGUITA DALLA FUNZIONE ASPETTO (VEDI FONDO PAGINA) CONTENUTA APPUNTO NEL FILE ASPETTO.INC.PHP
    //CI TENGO A PRECISARE CHE è UN METODO CHE NON Dà ERRORI QUINDI NON CERCATELI Lì
    function contenuto(){
    global
    $parole,$start;
    if (empty(
    $parole)){$error=true;echo "Errore: non hai specificato le parole da ricercare.<br><br><a href=\"allnews.php\">Torna alle notizie</a>";};
    if (!isset(
    $error)){
    $search=explode(" ",$parole);
    //DATABASE PARTE UNO
    include("config.inc.php");
    $db = mysql_connect($db_host, $db_user, $db_password);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name, $db)
    or die (
    "Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
    //DATABSE PARTE 2
    $queryADD="";
    reset($search);
    while (list(,
    $parola)=each($search)){
    $parola=trim($parola);
    if (!empty(
    $parola)){
    $queryADD.="notizia LIKE '%$parola%' OR ";};
    }
    $queryADD.="0";
    $ORZERO=" OR 0";
    $ORZEROKILL="";
    $queryADD=str_replace($ORZERO,$ORZEROKILL,$queryADD);
    if ((empty(
    $start))||($start<0))
    $start=0;
    $step=5;
    $query="SELECT id,data,notizia FROM news WHERE ". $queryADD ." ORDER BY id DESC LIMIT $start,$step";
    //LA SECONDA QUERY, CHE NON FUNZIONA!
    $query2="SELECT count(".$queryADD.") AS tot FROM news";
    //----------------------------------------------------
    $result = mysql_query($query, $db);
    $result2 = mysql_query($query2, $db);
    $row2 = mysql_fetch_array($result2);
    while (
    $row = mysql_fetch_array($result))
    {echo
    "<hr>$row[data]<hr>$row[notizia] <br><br>";};
    if (
    $start>0)
    {
    $start_back = $start - $step;
    echo
    "<a href=searchnews.res.php?start=$start_back&search=$parole>precedenti</a> ";
    };
    $pages = intval(($row2[tot]-1) / $step)+1;
    for (
    $i=0; $i<$pages AND $i<5; $i++)
    {
    $start_page = $i * $step;
    echo
    "<a href=searchnews.res.php?start=$start_page&search=$parole>" . ($i+1) . "</a> ";
    };
    if (
    $start + $step < $row2[tot])
    {
    $start_next = $start + $step;
    echo
    "<a href=searchnews.res.php?start=$start_next&search=$parole>successivi</a>";
    };
    //QUESTO è SOLO PER RIFERIMENTO PER VEDERE CHE RISULTATI DAVANO LE QUERY
    echo "<br>$row2[tot]<br>";
    echo
    "$query<br>$query2";
    //fine funzione contenuto()
    };};
    include (
    "aspetto.inc.php");
    aspetto();
    ?>
    Ultima modifica di breakinls : 14-08-2005 alle ore 16.34.40

  2. #2
    Guest

    Exclamation

    DAI ragazzi aiutatemi è importante!
    vi prego... sono senza più idee ormai...
    ho provato tutto nelle mie conoscenze...

  3. #3
    Guest

    Predefinito

    try this 'SELECT COUNT(*) AS tot FROM news WHERE notizia LIKE "%parola%"'

    ^_^

  4. #4
    Guest

    Talking

    accidenti non ci avevo proprio pensato!
    avevo pensato tutto il pensabile tranne quello più semplice...
    credevo che count(*) contasse tutto e non avesse WHERE...
    lo provo e ti faccio sapere. grazie ciao!

    HO EDITATO IL MESSAGGIO.
    adesso funziona, grazie mille e chiudete pure :D
    Ultima modifica di breakinls : 15-08-2005 alle ore 12.22.39

Regole di scrittura

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