Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Linkare i risultati di una query

    Sarà sicuramente il sonno ma non sto tranquillo se non posto questo messaggio di aiuto.
    Il codice è questo

    <?php
    include("connessione.php");

    if(!$stringa or $stringa=="")
    {
    echo "<font face=\"verdana\" size=\"2\">E' necessario specificare la/le parola/parole da cercare
    <a href=\"javascript:history.back()\">indietro</a></font>";
    exit();
    }
    if($ordine=="crescente") { $ord="ASC"; }
    elseif($ordine=="decrescente") { $ord="DESC"; }
    $cn=mysql_connect($host,$uid,$pw);
    mysql_select_db($db,$cn);
    $sql="SELECT id, titolo, testo, data, DATE_FORMAT(data, '%d.%m.%Y') as data2 FROM $tabella WHERE ";
    if($criterio=="esatta")
    {
    $sql.="testo LIKE '%$stringa%' ORDER BY id $ord";
    }
    elseif($criterio=="almeno")
    {
    $lista_parole=explode(" ",$stringa);
    for($i=0;$i<count($lista_parole);$i++)
    {
    $str.="testo LIKE '%$lista_parole[$i]%' OR ";
    }
    $str=substr($str,0,(strlen($str)-3));
    $sql.=$str." ORDER BY id $ord";
    }
    elseif($criterio=="tutte")
    {
    $lista_parole=explode(" ",$stringa);
    for($i=0;$i<count($lista_parole);$i++)
    {
    $str.="testo LIKE '%$lista_parole[$i]%' AND ";
    }
    $str=substr($str,0,(strlen($str)-4));
    $sql.=$str." ORDER BY id $ord";
    }
    $query=mysql_db_query($db,$sql);
    $num=mysql_num_rows($query);
    ?>
    <html>
    <head>
    <title>Esempio di motore di ricerca</title>
    </head>
    <body>
    <center>
    <font face="arial" color="red">Risultati della ricerca</font>


    <?
    if($num<1)
    {
    echo "<font face=\"arial\" size=\"2\">Nessun risultato trovato
    <a href=\"javascript:history.back()\">indietro</a></font>";
    }
    elseif($num>=1)
    {
    echo "<table border=\"1\" cellpadding=\"3\" cellspacing=\"0\" bgcolor=\"silver\" bordercolor=\"red\"><tr valign=\"top\"><td><font face=\"arial\" size=\"2\">[b]Data inserimento[b]</td><td><font face=\"arial\" size=\"2\">Testo</td></tr>";

    while($riga=mysql_fetch_array($query))
    $id = $riga["id"];
    $data2 = $riga["data2"];
    $titolo= $riga["titolo"];
    $titolo = substr("$titolo", 0, 30);
    $rig_titolo="<font size=\"1px\"><a href=\"../leggi.php?id_leggi=$id\">$data2 - $titolo</a> ...</font>";

    echo $rig_titolo ."
    ";

    {
    }
    }
    mysql_free_result ($query);

    mysql_close($cn);
    ?>
    </center>
    </body>
    </html>


    E' nella parte in grassetto :master: che c'è l'errore ma visto che non conosco bene il php e i comandi sql... eccomi qui.
    Vi prego qualcuno mi aiuti!
    "La verità sarà sempre una bugia."

  2. #2
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    elseif($num>=1)
    {
    echo "<table border=\"1\" cellpadding=\"3\" cellspacing=\"0\" bgcolor=\"silver\" bordercolor=\"red\"><tr valign=\"top\"><td><font face=\"arial\" size=\"2\">[b]Data inserimento[b]</td><td><font face=\"arial\" size=\"2\">Testo</td></tr>";
    }
    while($riga=mysql_fetch_array($query)
    {
    $id = $riga["id"];
    $data2 = $riga["data2"];
    $titolo= $riga["titolo"];
    $titolo = substr("$titolo", 0, 30);
    $rig_titolo="<font size=\"1px\"><a href=\"../leggi.php?id_leggi=$id\">$data2 - $titolo</a> ...</font>";

    echo $rig_titolo ."
    ";
    }
    mysql_free_result ($query);
    mysql_close($cn);
    ?>
    </center>
    </body>
    </html> ;

    prova cosi'! PS nn usi un editor php tipo zend o ultraedit?? ti aiuta in caso di sintassi errata e vedi subito l'errore di punteggiature...ciao

  3. #3
    Ti ringrazio tanto per la risposta. Riguardo all'edito, uso dreamweaver ma già sto provvedendo (almeno per il php) a testare il codice con altro editor.
    Ho cmq provato ad apportare il tuo codice ma mi da errore "Parse error: parse error, unexpected '{' in /web/htdocs..."su questa parentesi in grassetto "

    elseif($num>=1)
    {
    echo "<table border=\"1\" cellpadding=\"3\" cellspacing=\"0\" bgcolor=\"silver\" bordercolor=\"red\"><tr valign=\"top\"><td><font face=\"arial\" size=\"2\">[b]Data inserimento[b]</td><td><font face=\"arial\" size=\"2\">Testo</td></tr>";
    }
    while($riga=mysql_fetch_array($query)
    {
    $id = $riga["id"];
    $data2 = $riga["data2"];
    $titolo= $riga["titolo"];
    $titolo = substr("$titolo", 0, 30);
    $rig_titolo="<font size=\"1px\"><a href=\"../leggi.php?id_leggi=$id\">$data2 - $titolo</a> ...</font>";

    echo $rig_titolo ."
    ";
    }
    mysql_free_result ($query);
    mysql_close($cn);
    ?>
    </center>
    </body>
    </html> ;

    Secondo te... :master:
    "La verità sarà sempre una bugia."

  4. #4
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    prova a copiarmi ttto il file e lo vedo... cmq le graffe dopo while ci vogliono.. meglio vedere il file da inizio pagina..

    PS prova a modificare questa stringa:
    $rig_titolo="<font size=\"1px\"><a href=\"../leggi.php?id_leggi=$id\">$data2 - $titolo</a>

    falla cosi':

    $rig_titolo="<font size=\"1px\"><a href=\"../leggi.php?id_leggi=$id\">".$data2." - ".$titolo."</a>......";

  5. #5
    Eccola l'intera pagina. Questo è il codice originale. Voglio solo tirare fuori titolo e data dalla tabella e linkare il titolo sulla pagina 'leggi.php'
    _____________________________________

    <?php
    include("connessione.php");

    if(!$stringa or $stringa=="")
    {
    echo "<font face=\"arial\" size=\"2\">E' necessario specificare la/le parola/parole da cercare
    <a href=\"javascript:history.back()\">indietro</a></font>";
    exit();
    }
    if($ordine=="crescente") { $ord="ASC"; }
    elseif($ordine=="decrescente") { $ord="DESC"; }
    $cn=mysql_connect($host,$uid,$pw);
    mysql_select_db($db,$cn);
    $sql="SELECT*FROM $tabella WHERE ";
    if($criterio=="esatta")
    {
    $sql.="testo LIKE '%$stringa%' ORDER BY id $ord";
    }
    elseif($criterio=="almeno")
    {
    $lista_parole=explode(" ",$stringa);
    for($i=0;$i<count($lista_parole);$i++)
    {
    $str.="testo LIKE '%$lista_parole[$i]%' OR ";
    }
    $str=substr($str,0,(strlen($str)-3));
    $sql.=$str." ORDER BY id $ord";
    }
    elseif($criterio=="tutte")
    {
    $lista_parole=explode(" ",$stringa);
    for($i=0;$i<count($lista_parole);$i++)
    {
    $str.="testo LIKE '%$lista_parole[$i]%' AND ";
    }
    $str=substr($str,0,(strlen($str)-4));
    $sql.=$str." ORDER BY id $ord";
    }
    $query=mysql_db_query($db,$sql);
    $num=mysql_num_rows($query);
    ?>
    <html>
    <head>
    <title>Esempio di motore di ricerca</title>
    </head>
    <body>
    <center>
    <font face="arial" color="red">Risultati della ricerca</font>


    <?
    if($num<1)
    {
    echo "<font face=\"arial\" size=\"2\">Nessun risultato trovato
    <a href=\"javascript:history.back()\">indietro</a></font>";
    }
    elseif($num>=1)
    {
    echo "<table border=\"1\" cellpadding=\"3\" cellspacing=\"0\" bgcolor=\"silver\" bordercolor=\"red\"><tr valign=\"top\"><td><font face=\"arial\" size=\"2\">[b]Data inserimento[b]</td><td><font face=\"arial\" size=\"2\">Testo</td></tr>";
    while($riga=mysql_fetch_array($query))
    {
    echo "<tr><td><font face=\"arial\" size=\"2\">$riga[data]</td><td><font face=\"arial\" size=\"2\">".nl2br($riga[testo])."</td></tr>";
    }
    echo "</table>
    <font face=\"arial\" size=\"2\"><a href=\"javascript:history.back()\">indietro</a><font face=\"arial\" size=\"2\">";
    }
    echo "

    <font face=\"arial\" size=\"2\">Query SQL generata:
    $sql</font>";
    mysql_close($cn);
    ?>
    </center>
    </body>
    </html>

    _________________________________

    Grazie!
    "La verità sarà sempre una bugia."

  6. #6
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    strano, a me n da errori di punteggiatura..prova la modifica che ti ho sritto nelpost prima....". $.... ."...

  7. #7
    A me invece continua.
    Se non ti da errore allora prova a postami tutto il codice...
    Non ho idea...
    "La verità sarà sempre una bugia."

  8. #8
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    <?php
    require("connessione.php");

    if((!$stringa) || ($stringa==""))
    {
    echo "<font face=\"arial\" size=\"2\">E' necessario specificare la/le parola/parole da cercare
    <a href=\"java script:history.back()\">indietro</a></font>";
    exit();
    }
    if($ordine=="crescente") { $ord="ASC"; }
    elseif($ordine=="decrescente") { $ord="DESC"; }
    $cn=mysql_connect($host,$uid,$pw);
    mysql_select_db($db,$cn);
    $sql="SELECT*FROM".$tabella."WHERE ";
    if($criterio=="esatta")
    {
    $sql="testo LIKE '%$stringa%' ORDER BY id" .$ord;
    }
    elseif($criterio=="almeno")
    {
    $lista_parole=explode(" ",$stringa);
    for($i=0;$i<=count($lista_parole);$i++)
    {
    $str="testo LIKE '%$lista_parole[$i]%' OR ";
    }
    $str=substr($str,0,(strlen($str)-3));
    $sql=$str." ORDER BY id".$ord;
    }
    elseif($criterio=="tutte")
    {
    $lista_parole=explode(" ",$stringa);
    for($i=0;$i<=count($lista_parole);$i++)
    {
    $str="testo LIKE '%$lista_parole[$i]%' AND ";
    }
    $str=substr($str,0,(strlen($str)-4));
    $sql=$str." ORDER BY id".$ord;
    }
    $query=mysql_db_query($db,$sql);
    $num=mysql_num_rows($query);
    ?>
    <html>
    <head>
    <title>Esempio di motore di ricerca</title>
    </head>
    <body>
    <center>
    <font face="arial" color="red">Risultati della ricerca</font>


    <?php
    if($num<1)
    {
    echo "<font face=\"arial\" size=\"2\">Nessun risultato trovato
    <a href=\"java script:history.back()\">indietro</a></font>";
    }
    elseif($num>=1)
    {
    echo "<table border=\"1\" cellpadding=\"3\" cellspacing=\"0\" bgcolor=\"silver\" bordercolor=\"red\"><tr valign=\"top\"><td><font face=\"arial\" size=\"2\">[b]Data inserimento[b]</td><td><font face=\"arial\" size=\"2\">Testo</td></tr>";
    while($riga=mysql_fetch_array($query))
    {
    echo "<tr><td><font face=\"arial\" size=\"2\">".$riga[data]."</td><td><font face=\"arial\" size=\"2\">".nl2br($riga[testo])."</td></tr>";
    }
    echo "</table>
    <font face=\"arial\" size=\"2\"><a href=\"java script:history.back()\">indietro</a><font face=\"arial\" size=\"2\">";
    }
    echo "

    <font face=\"arial\" size=\"2\">Query SQL generata:
    ".$sql."</font>";
    mysql_close($cn);
    ?>
    </center>
    </body>
    </html>

    ho modificato delle cose tipo punti (str.= ?? ho messo str=... Poi for($i=0;$i<=count();$i++)...)
    e degli apici... fammi sapere

  9. #9
    Ancora errore qui

    $num=mysql_num_rows($query);
    Immagini allegate Immagini allegate
    "La verità sarà sempre una bugia."

  10. #10
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    in teoria nn esegue la query per qualche parametro mancato. io nn posso vedere perche' nn ho accesso al db. prova a stampere la query, mettici echo davanti alla select e controlla se hai tutti i dati. forse nn prende il pezzo dopo il WHERE. se cosi' fosse, interrompi la select dopo il nome di tabella e metti il WHERE insieme al LIKE ( "WHERE testo like..." )...aspetto.

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.