• User Attivo

    Perdita variabile

    Ciao a tutti da Danny, ho un problema, a priva vista sembrerebbe semplice, ma in realtà mi sta facendo impazzire, premetto che è la prima volta che faccio questo tipo di operazione.
    Prima di postare il cosice vi spiego cosa succede, in una pagina ho una select con all'interno delle voci, scelgo una voce dall'elenco e clicco su cerca e fin quà tutto bene la ricerca va bene, il problema c'è lo con le pagine, faccio visualizzare 5 articoli per pagina, ma quando clicco sul numero 1 o 2 dipende dalla quantità di articoli, mi visualizza una pagina bianca. Secondo me perdo la variabile delle vocine nella select, voi cosa dite?
    [php]
    <?php
    require 'connessione/Config.php';
    require 'connessione/Connect.php';

    if(isset($_POST['cmb_costruttore']))
    {
    $cerca=trim($_POST['cmb_costruttore']);
    if(get_magic_quotes_gpc())
    {
    $cerca=stripslashes($cerca);
    }
    $cerca=htmlspecialchars($cerca);
    $cerca=mysql_real_escape_string($cerca);

    $query_presenza_veicoli = mysql_query("SELECT COUNT(id_veicolo) as num_art FROM veicoli WHERE id_costruttore = $cerca")
    or die("errore nella query;".mysql_error());
    $presenza_veicoli = mysql_fetch_array($query_presenza_veicoli);

    if(!isset($_GET['numero_pagina']))
    {
    $numero_pagina=1;
    }
    else
    {
    $numero_pagina=$_GET['numero_pagina'];
    }

    $limite_inferiore=($numero_pagina-1)*5;

    if($presenza_veicoli[0]==false)
    {
    print"
    <table cellspacing='0' cellpadding='0' border='0' width='400'>
    <tr>
    <td width='5'></td>
    <td class='font_2'>NON CI SONO VEICOLI DA VISUALIZZARE PER QUESTA MARCA</td>
    </tr>
    </table>";
    }
    else
    {
    $query_veicolo = mysql_query("SELECT veicoli., costruttori.
    FROM veicoli, costruttori
    WHERE costruttori.id_costruttore = veicoli.id_costruttore
    && costruttori.id_costruttore = $cerca
    ORDER BY id_veicolo DESC LIMIT $limite_inferiore,5")
    or die("errore nella query;".mysql_error());

    for($a = 0; $a < mysql_num_rows($query_veicolo); $a++)
    {
    $risultato_query_veicolo = mysql_fetch_assoc($query_veicolo);

     print"
      <table cellspacing='0' cellpadding='0' border='0' bordercolor='#000099'>
       <tr><td colspan='4' height='5'></td></tr>
       <tr>
        <td width='18'></td>
        <td class='font_2'>MARCA</td>
        <td width='18'></td>
        <td colspan='2' class='font_3' width='200'>
         $risultato_query_veicolo[desc_costruttore]
        </td>
       </tr>
      </table>";
    }
    

    }

    $pagine=ceil($presenza_veicoli[0]/5);
    print"
    <table cellpadding='0' cellspacing='0' border='0'>";
    print"
    <tr>";
    for($b = 1; $b <= $pagine; $b++)
    {
    print"
    <td class='font_2'>
    <a href='index.php?lehekülg=ricveicoli&numero_pagina=$b'>$b</a> 
    </td>";
    }
    print"
    </tr>";
    print"
    </table>";
    }
    ?>
    [/php]
    Grazie per l'aiuto da danny:bigsmile:


  • ModSenior

    Ciao danny1975,
    come cicli le query e controlli se restituisce un risultato non è il massimo come codice, ma dovrebbe funzionare.
    Se la pagina è bianca proprio, dovrebbe essere un errore di sintassi, controlla se la visualizzazione degli errori nel file di configurazione è impostata su ON.


  • User Attivo

    Grazie Thedarkita, sto impazzendo da stanotte, ma niente da fare, per quanto riguarda la cosa che mi hai detto che non è il massimo, confido in un tuo aiuto per rendere il tutto più professionale. La programmazione è come quel proverbio che dice tutte le strade portano a Roma, però un conto è farne una sterrata, ed un altro è farne una bella asfaltata. Confido in te per migliorare, Grazie.
    Posto le pagine che fanno l'operazione, le ho semplificate
    index.php
    [PHP]
    <?php
    require 'connessione/Config.php';
    require 'connessione/Connect.php';

    $query_costruttore=mysql_query("Select * From costruttori ORDER BY desc_costruttore")
    or die("errore nella query Costruttori;".mysql_error());
    ?>
    <div align="center">
    <form method="post" action="index.php?lehekülg=ricveicoli">
    <table background="images/testata.jpg" cellpadding="0" cellspacing="0" width="900" height="471" border="0">
    <tr>
    <td></td>
    </tr>
    </table>
    <table background="images/bottom_testata.jpg" cellpadding="0" cellspacing="0" width="900" height="47" border="0" bordercolor="#003300">
    <tr>
    <td width="510"></td>
    <td width="105" class="font_1">Seleziona Marca</td>
    <td width="130">
    <?php
    print"
    <select name='cmb_costruttore' class='select_1'>";
    for($a=0; $a<mysql_num_rows($query_costruttore);$a++)
    {
    $a_elenco_costruttore=mysql_fetch_assoc($query_costruttore);
    print"
    <option value='".intval($a_elenco_costruttore['id_costruttore'])."'>
    ".$a_elenco_costruttore['desc_costruttore']."
    </option>";
    }
    print"
    </select>";
    ?>
    </td>
    <td><input type="image" value="cerca" img src="images/t_cerca.jpg" /></td>
    <td width="20"></td>
    </tr>
    </table>
    <table background="images/corpo.jpg" cellpadding="0" cellspacing="0" width="900" height="500" border="0" bordercolor="#CC3300">
    <tr>
    <td valign="top" width="40"></td>
    <td valign="top" width="550">
    <?php
    if(isset($_GET['lehekülg']))
    {
    $pagina = $_GET['lehekülg']. '.php';
    if (file_exists($pagina))
    {
    include($pagina);
    }
    else
    {
    include('veicoli.php');
    }
    }
    else
    {
    include('veicoli.php');
    }
    ?>
    </td>
    <td valign="top">
    <table background="images/menu.jpg" cellspacing="0" cellpadding="0" width="237" height="362" border="0" bordercolor="#00CC00">
    <tr>
    <td height="13"></td>
    <td></td>
    <td width="40"></td>
    </tr>
    <tr>
    <td width="20" height="37"></td>
    <td><a href="index.php?lehekülg=veicoli"><img src="images/tasto_menu.gif" border="0"></a></td>
    <td width="40"></td>
    </tr>
    <tr>
    <td width="20" height="37"></td>
    <td><a href="quad"><img src="images/tasto_menu.gif" border="0"></a></td>
    <td width="40"></td>
    </tr>
    <tr>
    <td width="20" height="37"></td>
    <td><a href="pit"><img src="images/tasto_menu.gif" border="0"></a></td>
    <td width="40"></td>
    </tr>
    <tr>
    <td width="20" height="37"></td>
    <td><a href="moto"><img src="images/tasto_menu.gif" border="0"></a></td>
    <td width="40"></td>
    </tr>
    <tr>
    <td width="20" height="37"></td>
    <td><a href="scooter"><img src="images/tasto_menu.gif" border="0"></a></td>
    <td width="40"></td>
    </tr>
    <tr>
    <td width="20" height="37"></td>
    <td><a href="noleggio"><img src="images/tasto_menu.gif" border="0"></a></td>
    <td width="40"></td>
    </tr>
    <tr>
    <td width="20" height="37"></td>
    <td><a href="azienda"><img src="images/tasto_menu.gif" border="0"></a></td>
    <td width="40"></td>
    </tr>
    <tr>
    <td width="20" height="37"></td>
    <td><a href="login"><img src="images/tasto_menu.gif" border="0"></a></td>
    <td width="40"></td>
    </tr>
    <tr>
    <td width="20"></td>
    <td></td>
    <td width="40"></td>
    </tr>
    </table>
    </td>
    </tr>
    </table>
    <table background="images/bottom.jpg" cellpadding="0" cellspacing="0" width="900" height="79" border="0">
    <tr>
    <td></td>
    </tr>
    </table>
    </form>
    [/PHP]
    pagina ricveicoli.php
    [PHP]
    <?php
    require 'connessione/Config.php';
    require 'connessione/Connect.php';

    if(isset($_POST['cmb_costruttore']))
    {
    $cerca=trim($_POST['cmb_costruttore']);
    if(get_magic_quotes_gpc())
    {
    $cerca=stripslashes($cerca);
    }
    $cerca=htmlspecialchars($cerca);
    $cerca=mysql_real_escape_string($cerca);

    $query_presenza_veicoli = mysql_query("SELECT COUNT(id_veicolo) as num_art FROM veicoli WHERE id_costruttore = $cerca")
    or die("errore nella query;".mysql_error());
    $presenza_veicoli = mysql_fetch_array($query_presenza_veicoli);

    if(!isset($_GET['numero_pagina']))
    {
    $numero_pagina=1;
    }
    else
    {
    $numero_pagina=$_GET['numero_pagina'];
    }

    $limite_inferiore=($numero_pagina-1)5;
    if($presenza_veicoli[0]==false)
    {
    print"
    <table cellspacing='0' cellpadding='0' border='0' width='400'>
    <tr>
    <td width='5'></td>
    <td class='font_2'>NON CI SONO VEICOLI DA VISUALIZZARE PER QUESTA MARCA</td>
    </tr>
    </table>";
    }
    else
    {
    $query_veicolo = mysql_query("SELECT veicoli.
    , costruttori., tipologie.
    FROM veicoli, costruttori, tipologie
    WHERE costruttori.id_costruttore = veicoli.id_costruttore
    && tipologie.id_tipologia = veicoli.id_tipologia
    && costruttori.id_costruttore = $cerca
    ORDER BY id_veicolo DESC LIMIT $limite_inferiore,5")
    or die("errore nella query;".mysql_error());

    for($a = 0; $a < mysql_num_rows($query_veicolo); $a++)
    {
    $risultato_query_veicolo = mysql_fetch_assoc($query_veicolo);

     print"
      <table background='images/contenitore.jpg' cellspacing='0' cellpadding='0' width='501' height='119' border='0' bordercolor='#000099'>
       <tr>
        <td width='12'></td>
        <td width='120' height='8'></td>
        <td width='400'></td>
        <td></td>
       </tr>
       <tr>
        <td></td>
        <td><img src='images/auto.jpg'></td>
        <td valign='top'>
         <table cellspacing='0' cellpadding='0' border='0' bordercolor='#0000CC'>
          <tr><td colspan='4' height='5'></td></tr>
          <tr>
           <td width='18'></td>
           <td class='font_2'>MARCA</td>
           <td width='18'></td>
           <td colspan='2' class='font_3' width='200'>
            $risultato_query_veicolo[desc_costruttore]
           </td>
          </tr>
          <tr><td colspan='4' height='5'></td></tr>
          <tr>
           <td width='18'></td>
           <td class='font_2'>MODELLO</td>
           <td width='18'></td>
           <td colspan='2' class='font_3'>
            $risultato_query_veicolo[modello]
           </td>
          </tr>
          <tr><td colspan='4' height='5'></td></tr>
          <tr>
           <td width='18'></td>
           <td class='font_2'>TIPOLOGIA</td>
           <td width='18'></td>
           <td colspan='2' class='font_3'>
            $risultato_query_veicolo[desc_tipologia]
           </td>
          </tr>
          <tr><td colspan='4' height='5'></td></tr>
          <tr>
           <td width='18'></td>
           <td class='font_2'>IMMATRICOLAZIONE</td>
           <td width='18'></td>
           <td colspan='2' class='font_3'>
            $risultato_query_veicolo[immatricolazione]
           </td>
          </tr>
          <tr><td colspan='4' height='5'></td></tr>
          <tr>
           <td width='18'></td>
           <td class='font_2'>CHILOMETRI</td>
           <td width='18'></td>
           <td class='font_3'>
            $risultato_query_veicolo[chilometri]
           </td>
           <td align='right'>
            <a href='index.php?lehekülg=dveicoli&raamat=$risultato_query_veicolo[id_veicolo]'>
            <img src='images/scheda.png' border='0'></a>
           </td>
          </tr>
         </table>
        </td>
        <td></td>
       </tr>
       <tr>
        <td></td>
        <td width='120' height='8'></td>
        <td></td>
        <td></td>
       </tr>
      </table>";
    }
    

    }

    $pagine=ceil($presenza_veicoli[0]/5);
    print"
    <table cellpadding='0' cellspacing='0' border='0'>";
    print"
    <tr>
    <td height='5'></td>
    <td height='5'></td>
    </tr>
    <tr>";
    for($b = 1; $b <= $pagine; $b++)
    {
    print"
    <td width='7' height='5'></td>
    <td background='images/case.jpg' width='27' height='30'>
    <table cellpadding='0' cellspacing='0' border='0'>
    <tr>
    <td width='11'></td>
    <td class='font_2'>
    <a href='index.php?lehekülg=ricveicoli&numero_pagina=$b&costruttore=$cerca'>$b</a> </td>
    </tr>
    </table>
    </td>";
    }
    print"
    </tr>";
    print"
    </table>";
    }
    ?>
    [/PHP]
    queste sono le pagine, non riesco a capire cosa non gli passo,
    non voglio pensare che l'intoppo sta nel fatto che quando faccio la ricerca dalla select si riazzera, nel senso come prima voce ho Alfa Romeo, quando cerco Fiat che si trova nella terza posizione, la ricerca viene fatta, ma la select si rimette su Alfa Romeo. Booo

    Ciao e grazie da danny


  • ModSenior

    Allora intanto:
    [php]
    for($a = 0; $a < mysql_num_rows($query_veicolo); $a++)
    {
    $risultato_query_veicolo = mysql_fetch_assoc($query_veicolo);
    [/php]
    È molto meglio fare:
    [php]
    while($risultato_query_veicolo = mysql_fetch_assoc($query_veicolo))
    {
    [/php]

    Gli include in quel modo sarebbero anche sconsigliabili, chi mi impedisce di inserire in file che voglio io editando il valore della variabile?

    Per il problema vero e proprio, ottieni quindi una pagina senza nessun output?


  • User Attivo

    Grazie, si per il problema ottengo proprio una pagina in bianco

    per gli include intendi questo
    [PHP]<a href='index.php?lehekülg=dveicoli&raamat=$risultato_query_veicolo[id_veicolo]'>
    [/PHP]


  • ModSenior

    Hai controllato al configurazione per abilitare la visualizzazione degli errori?


  • User Attivo

    A dirti la verità non lo mai fatto, non saprei nemmeno dove andare


  • ModSenior

    Stai provando in locale?


  • User Attivo

    @Thedarkita said:

    Stai provando in locale?

    Si giusto:vai:

    La stessa cosa mi fa in un'altra pagina dove vedo in dettagliio l'articolo, ho provato ad inserire un tasto per tornare indietro e mi da lo stesso risultato, pagina bianca. Secondo me risolto uno è risolto anche l'altro


  • ModSenior

    Devi cercare il file php.ini nel tuo pc.


  • User Attivo

    @Thedarkita said:

    Devi cercare il file php.ini nel tuo pc.

    ho trovato questo
    php.ini-dist

    ma non penso che sia lui:?

    in cambio nella cartelle Apache/Conf ho trovato 2 file di testo
    httpd, httpd.default


  • User Attivo

    Ciao, nella cartella php, c'è un file.txt "php", all'interno ho trovato

     
    register_globals = Off         [Security, Performance]
    
    

    è questo che devo modificare?


  • User Attivo

    Intanto graazie, ho caricato il progetto sul web per farti vedere l'errore di che si tratta il sito è xxx.annunciitaliani.it, prova a fare la ricerca per marca lamborghini e ti renderei conto quando vorrai andare sulla pagina 2


  • ModSenior

    È normale questo in quanto la variabile POST la perdi se cambi pagina, ti conviene utilizzare il metodo GET in maniera da poter rigenerare l'url correttamente anche per le pagine successive.


  • User Attivo

    @Thedarkita said:

    È normale questo in quanto la variabile POST la perdi se cambi pagina, ti conviene utilizzare il metodo GET in maniera da poter rigenerare l'url correttamente anche per le pagine successive.

    Ho provato, ma inserendo get non funziona bene la ricerca


  • ModSenior

    Se modifichi sia il form impostandolo su GET che lato php cambiando da POST a GET dovrebbe andare correttamente.


  • User Attivo

    @Thedarkita said:

    Se modifichi sia il form impostandolo su GET che lato php cambiando da POST a GET dovrebbe andare correttamente.

    [php]
    if(isset($_GET['cmb_costruttore']))
    {
    $cerca=trim($_GET['cmb_costruttore']);
    if(get_magic_quotes_gpc())
    {
    $cerca=stripslashes($cerca);
    }
    $cerca=htmlspecialchars($cerca);
    $cerca=mysql_real_escape_string($cerca);
    [/php]

    [php]
    <form method="GET" action="index.php?lehekülg=ricveicoli">
    [/php]

    ho mandato tutto in rete puoi vedere il risultato, non effettua bene la ricerca

    Pensavo che fosse più semplice a dirti la verità


  • User Attivo

    Ho provato a semplificare una pagina chiamata ricveicoli_prova.php
    ho tolto tutto quello ambarapà della variabile $_POST e funziona, quindi il problema è che quando mi visualizza il risultato della ricerca in qualche modo perdo la variabile $cerca
    ricveicoli_prova.php
    [php]
    <?php
    require 'connessione/Config.php';
    require 'connessione/Connect.php';

    $query_presenza_veicoli = mysql_query("SELECT COUNT(id_veicolo) as num_art FROM veicoli WHERE id_costruttore = 4")
    or die("errore nella query;".mysql_error());
    $presenza_veicoli = mysql_fetch_array($query_presenza_veicoli);

    if(!isset($_GET['numero_pagina']))
    {
    $numero_pagina=1;
    }
    else
    {
    $numero_pagina=$_GET['numero_pagina'];
    }

    $limite_inferiore=($numero_pagina-1)*5;

    if($presenza_veicoli[0]==false)
    {
    print"
    <table cellspacing='0' cellpadding='0' border='0' width='400'>
    <tr>
    <td width='5'></td>
    <td class='font_2'>NON CI SONO VEICOLI DA VISUALIZZARE PER QUESTA MARCA</td>
    </tr>
    </table>";
    }
    else
    {
    $query_veicolo = mysql_query("SELECT veicoli., costruttori., tipologie.*
    FROM veicoli, costruttori, tipologie
    WHERE costruttori.id_costruttore = veicoli.id_costruttore
    && tipologie.id_tipologia = veicoli.id_tipologia
    && costruttori.id_costruttore = 4
    ORDER BY id_veicolo DESC LIMIT $limite_inferiore,5")
    or die("errore nella query;".mysql_error());

    for($a = 0; $a < mysql_num_rows($query_veicolo); $a++)
    {
    $risultato_query_veicolo = mysql_fetch_assoc($query_veicolo);

     print"
      <table cellspacing='0' cellpadding='0' border='0' bordercolor='#000099'>
       <tr><td colspan='4' height='5'></td></tr>
       <tr>
        <td width='18'></td>
        <td class='font_2'>MARCA</td>
        <td width='18'></td>
        <td colspan='2' class='font_3' width='200'>
         $risultato_query_veicolo[desc_costruttore]
        </td>
       </tr>
      </table>";
    }
    

    }

    $pagine=ceil($presenza_veicoli[0]/5);
    print"
    <table cellpadding='0' cellspacing='0' border='0'>";
    print"
    <tr>";
    for($b = 1; $b <= $pagine; $b++)
    {
    print"
    <td class='font_2'>
    <a href='ricveicoli_prova.php?numero_pagina=$b&id_costruttore=4'>$b</a> 
    </td>";
    }
    print"
    </tr>";
    print"
    </table>";
    ?>
    [/php]

    Non voglio dire sciocchezze perchè non ne ho idea di come fare
    comunque è visibile sul web


  • ModSenior

    Allora intanto per iniziare:
    [php]
    <form method="GET" action="index.php?lehekülg=ricveicoli">
    [/php]
    Non si può fare, ma devi fare:
    [php]
    <form method="GET" action="index.php">
    <input type="hidden" name="lehekülg" value="ricveicoli" />
    [/php]

    Le query che hai postato non utilizzi comunque $cerca ma hai impostato una costante.


  • User Attivo

    @Thedarkita said:

    Allora intanto per iniziare:
    [php]
    <form method="GET" action="index.php?lehekülg=ricveicoli">
    [/php]
    Non si può fare, ma devi fare:
    [php]
    <form method="GET" action="index.php">
    <input type="hidden" name="lehekülg" value="ricveicoli" />
    [/php]

    Le query che hai postato non utilizzi comunque $cerca ma hai impostato una costante.

    Hai ragione, ma avevo fatto una prova per avere conferma dell'errore