Visualizzazione dei risultati da 1 a 2 su 2

Discussione: $_GET impazzito?

  1. #1

    $_GET impazzito?

    Ciao a tutti, ho 2 pagine PHP per effettuare una ricerca in php e mysql.
    nella prima ho un campo di ricerca che tramite metogo GET in teoria dovrei passarle all' altra pagina per effettuare la query e poi stamparle con impaginazione.
    Ecco i codici:

    home.php
    Codice PHP:
    <?   
    $string
    =mysql_real_escape_string($_GET['string']); 
    ?> 
    <form action="home.php?page=search&string=<? echo $string;?>&lim1=<?echo $lim1;?>&lim2=5" method="get"> 
                                        <table cellpadding="0" cellspacing="0"> 
                                            <tr> 
                                                <td valign="top"> 
                                                    <input type="text" name="string" id="string" value="<?echo $string;?>" style="height: 34px; width: 400px; font-size: 30px;-webkit-border-top-left-radius: 7px;-webkit-border-bottom-left-radius: 7px;-moz-border-radius-topleft: 7px;-moz-border-radius-bottomleft: 7px;border-top-left-radius: 7px;border-bottom-left-radius: 7px;" autocomplete="on"> 
                                                </td> 
                                                <td valign="bottom"> 
                                                    <input type="image" src="image/src.gif" height="40" width="40" id="cerca" autocomplete="off"> 
                                                </td> 
                                            </tr> 
                                        </table> 
                                    </form> 
    <?   
    if($_GET['page']=="search"){   
       echo 
    "Stai cercando ".$string.".";   
       include 
    'search.php';   
    }   
    ?>
    search.php
    Codice PHP:
    <? 
    $query
    ="SELECT * FROM articolo WHERE titolo LIKE '%".$string."%' ORDER BY data DESC LIMIT ".$_GET['lim1'].",5"
    $risultati=mysql_query($query); 
    $num=mysql_num_rows($risultati); 
    if (
    $num==0){  
        echo 
    'Nessun risultato per: "';  
        echo 
    $string
        echo 
    '".'
    }else{ 
    ?> 
        <div align="center"> 
    <? 
        $i
    =0
        while (
    $i<$num){     
            
    $id=mysql_result($risultati,$i,"id"); 
            
    $t=mysql_result($risultati,$i,"titolo"); 
            
    $a=mysql_result($risultati,$i,"autore"); 
            
    $d=mysql_result($risultati,$i,"data"); 
            
    $w=mysql_result($risultati,$i,"wiev"); 
            
    $c=mysql_result($risultati,$i,"categoria"); 
            
    $r=mysql_result($risultati,$i,"difficolta"); 
            
    $ok=mysql_result($risultati,$i,"certificato"); 
    ?> 
            <a href="home.php?page=article&act=wiev&id=<? echo $id?>"> 
                <table width="100%" bgcolor="#e9e9e9" style="border: 1px solid #c0c0c0;" class="clickgui"> 
                    <tr> 
                        <td align="left" width="33%" valign="middle"> 
                            <font size="4"> 
                                <? echo $t?> 
                            </font> 
                            
     
                            Visualizzazioni: <? echo $w?> 
                            
     
                            Difficolt&agrave: <?  
                            $stella
    '[img]image/stella.png[/img]'
                            if(
    $r==0){ echo $stella; echo ": Molto facile."; } 
                            else if(
    $r==1){ echo $stella,$stella; echo ": Facile."; } 
                            else if(
    $r==2){ echo $stella,$stella,$stella; echo ": Medio."; } 
                            else if(
    $r==3){ echo $stella,$stella,$stella,$stella; echo ": Difficile."; } 
                            else if(
    $r==4){ echo $stella,$stella,$stella,$stella,$stella; echo ": Molto difficile."; } 
    ?> 
                        </td> 
                        <td width="33%" valign="middle"> 
    <? 
                            
    if($ok==1){ 
    ?> 
                                [img]image/certif.png[/img] 
    <? 
                            

    ?> 
                        </td> 
                        <td align="right" valign="middle" width="33%"> 
                            Data: <? echo $d?> 
                            
     
                            Autore: <? echo $a?> 
                            
     
                            Categoria: <? echo $c?> 
                        </td> 
                    </tr> 
                </table> 
            </a> 
            
     
    <? 
            $i
    ++; 
        } 
        if (
    $_GET['lim1']!=0){ 
    ?>                                                     
            <a href="<?php print("home.php?page=search&string=".$string."&lim1=".($_GET['lim1']-5)."&lim2=5");?>"> 
                [img]image/pagina-precedente.png[/img] 
            </a> 
    <? 
        

        
    $cerca_altre="SELECT * FROM articolo WHERE titolo LIKE '%$string%' LIMIT ".($_GET['lim1']+5).",5"
        
    $controllo_successivi=mysql_query($cerca_altre); 
        if (
    mysql_fetch_row($controllo_successivi)){ 
    ?> 
            <a href="<?php print("home.php?page=search&string=".$string."&lim1=".($_GET['lim1']+5)."&lim2=5");?>"> 
                [img]image/prossima-pagina.png[/img] 
            </a>         
    <?php 
              

    ?> 
        </div> 
    <? 

    ?>
    Bene, quello che mi succede se digito qualcosa ad esempio "r":

    premo il tasto "cerca" e in teoria dovrebbe portarmi alla pagina "home.php?page=search&string=r&lim1=0&lim2=5"

    Invece al momento del click mi porta a "home.php?string=r&x=10&y=12"

    In pratica salta per prima cosa "page=search" e poi mi mette le coordinate dell' <input type="image" a seconda dove clicco.

    Devo dire però che c'è qualcosa che mi ha stranizzato, in teoria non essendoci nel link "page=search" la pagina search.php non viene inclusa. Ma a me poi mi stampa a video questa parte di codice

    Codice PHP:
    $query="SELECT * FROM articolo WHERE titolo LIKE '%".$string."%' ORDER BY data DESC LIMIT ".$_GET['lim1'].",5"
    $risultati=mysql_query($query); 
    $num=mysql_num_rows($risultati); 
    if (
    $num==0){  
        echo 
    'Nessun risultato per: "';  
        echo 
    $string
        echo 
    '".'

    al che mi viene un dubbio!

    Nella mia pagina "home.php" ho uno script che funziona alla stessa maniera di questo ma non tramite campo ricerca ma per "ultime inserite" e utilizzo i nomi delle query uguali in entrambe le pagine, quindi mi sono chiesto "ma può fare conflitto?".

  2. #2
    Nessun conflitto.
    Se usi il metodo GET, l'attributo action del form viene sovrascritto per passare i campi del form.
    Esempio, il form:
    codice:
    <form action="search.php" method="get">
       <input name="A" value="1">
       <input name="B" value="2">
       <input type="submit" value="invia">
    </form>
    ti porterà, quando inviato, a:
    search.php?A=1&B=2

    Nel tuo caso, per passare dei parametri "statici", puoi usare dei campi hidden:
    Codice PHP:
    <form action="home.php" method="get">  

    <input type="hidden" name="page" value="search">
    <input type="hidden" name="lim1" value="<?echo $lim1;?>">
    <input type="hidden" name="lim2" value="5">

                                        <table cellpadding="0" cellspacing="0">  
                                            <tr>  
                                                <td valign="top">  
                                                    <input type="text" name="string" id="string" value="<?echo $string;?>" style="height: 34px; width: 400px; font-size: 30px;-webkit-border-top-left-radius: 7px;-webkit-border-bottom-left-radius: 7px;-moz-border-radius-topleft: 7px;-moz-border-radius-bottomleft: 7px;border-top-left-radius: 7px;border-bottom-left-radius: 7px;" autocomplete="on">  
                                                </td>  
                                                <td valign="bottom">  
                                                    <input type="image" src="image/src.gif" height="40" width="40" id="cerca" autocomplete="off">  
                                                </td>  
                                            </tr>  
                                        </table>  
                                    </form>

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.