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

    Passare valori da un form e Paginazione

    Ciao!

    Ho il seguente file, che richiamando i valori da un form deve stampare i valori di una tabella, e deve fare una paginazione.
    Codice PHP:
    <?
    require("config.php");

    $elencotabelle=$_GET['elencotabelle'];

    $connessione mysql_connect($db_host$db_user,$db_password) or die("Connessione fallita !"); 
    @
    mysql_select_db($db_name) or die("Selezione Database fallita !");

    $query="select * from ($elencotabelle)  ";
    $resultmysql_query($query);

    $numfields mysql_num_fields($result);
    //restituisce il numero di campi di un record

    $res_count=mysql_num_rows($result);
    // numero totale di records
    $tot_records $res_count;

    // risultati per pagina(secondo parametro di LIMIT)
    $per_page =15;

    // numero totale di pagine
    $tot_pages ceil($tot_records $per_page);

    // pagina corrente
    $current_page = (!$_GET['page']) ? : (int)$_GET['page'];

    // primo parametro di LIMIT
    $primo = ($current_page 1) * $per_page;

    // esecuzione seconda query con LIMIT

    $query="select * from ($elencotabelle) LIMIT $primo$per_page";
    $risultato = @mysql_query($query) or die("Query fallita !"); 

    echo 
    "<table width=\"70%\" cellspacing=\"0\" cellpadding=\"0\" border=\"1\">
    <tr class=\"intestazione\"align=\"center\">"
    ;
    for (
    $i=0$i $numfields$i++) 
      { 
       echo 
    '<td align=\"center\">'.mysql_field_name($risultato$i).'</td>'
       }
       echo 
    "</tr>";
       
       while (
    $row mysql_fetch_row($risultato)) 
      { 

       echo 
    "<tr  bgcolor= \"$color\" align=\"center\">";
       echo
    "<td >".implode($row,'</td><td>')."</td>";
       echo
    "</tr>";
     
      }
    echo 
    "</table>";

    include(
    "paginazione_1.php");
    //include("paginazione_2.php");

    // in questa cella inseriamo la paginazione
    echo " <p class=\"collegamenti\">$paginazione</p>";
    quando vado per cliccare sulla pagina seguente della paginazione, mi da il seguente errore:

    Warning: mysql_num_fields(): supplied argument is not a valid MySQL result resource in c:\programmi\easyphp1-8\www\listini\stampatabella.php on line 21

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\programmi\easyphp1-8\www\listini\stampatabella.php on line 24
    Query fallita !

    se invece di mettere come tabella il valore ricavato da form ovvero ($elencotabelle), mettendo il nome della tabella, funziona tutto.
    Codice PHP:
    $query="select * from costruttori  "
    PERCHE'. COME FACCIO A RISOLVERE NEL PRIMO CASO?

  2. #2
    Anziche fare un $_GET fai un $_REQUEST
    Nella pagina dove richiami la paginazione hai un tag con id e/o name = 'elencotabelle'??

  3. #3
    Grazie per avere risposto
    Ho sostituito $_Get con $_Request, ma da sempre lo stesso problema.
    Se intendi nel form che richiama la pagina php dove verrà fatta la paginazione non ho un name = 'elencotabelle'

    il form è questo:
    codice:
    <form name="form1" method="GET" action="stampatabella.php">
      <table width="75%" border="1">
        <tr> 
          <td width="25%"><font color="#FFFFFF">Seleziona Tabella</font></td>
          <td width="32%"><select name="elencotabelle" size="1" id="select">
              <option value="costruttori">costruttori</option>
              <option value="categorie">categorie</option>
              <option value="listini">listini</option>
            </select></td>
          <td width="43%"></td>
        </tr>
        <tr> 
          <td><font color="#FFFFFF">Seleziona Campo per Ricerca</font></td>
          <td><select name="criterioricerca" size="1" id="select2">
    	  <option selected=""></option>
              <option value="Codice">Codice</option>
              <option value="Nome">Nome</option>
              <option value="Descrizione">Descrizione</option>
            </select></td>
          <td></td>
        </tr>
        <tr> 
          <td><font color="#FFFFFF">Inserisci Valore da Ricercare</font></td>
          <td><input name="testodescrizione" type="text" id="testodescrizione" size="30"></td>
          <td></td>
        </tr>
    
          <td></td>
          <td><input type="submit" name="Submit" value="Invia"></td>
          <td></td>
        </tr>
      </table>
    </form>
    Aiuto!

  4. #4
    Cambia <form name="form1" method="GET" action="stampatabella.php">
    con <form name="form1" method="POST" action="stampatabella.php"> prima di tutto..


    Poi..
    se l'id di questa select
    <select name="elencotabelle" size="1" id="select">

    non lo usi per altri script o per definire un css cambia l'id, mettendolo uguale al name.

    Nella pagina php stampati il valore che ti prende..
    ovvero

    echo $_REQUEST['elencotabelle'];

    e vedi cosa prende

  5. #5
    Per il passaggio di tutte queste variabili, usa l'entype.

    codice:
    <form name="form1" method="POST" action="stampatabella.php" enctype="multipart/form-data">
    Ti sconsiglio poi di passare dei dati con un metodo (GET o POST) ed andarli a recuperare con $_REQUEST.
    A livello di sicurezza apri grosse falle!

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  6. #6
    Grazie per le risposte.
    Purtroppo ho fatto le modifiche, ma non funziona.
    La variabile la passa, se faccio l'echo, la stampa.
    Ma se no da il seguente errore:

    Warning: mysql_num_fields(): supplied argument is not a valid MySQL result resource in c:\programmi\easyphp1-8\www\listini\stampatabella3.php on line 15

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\programmi\easyphp1-8\www\listini\stampatabella3.php on line 18
    Query fallita !


    ho fatto queste modifiche al form:
    codice:
    ...<form name="form1" method="POST" action="stampatabella3.php" enctype="multipart/form-data">
      <table width="75%" border="1">
        <tr> 
          <td width="25%"><font color="#FFFFFF">Seleziona Tabella</font></td>
          <td width="32%"><select name="elencotabelle" size="1" id="elencotabelle">...
    Suggerimenti? Grazie!

  7. #7
    Togli la @ dal comando mysql_query e vedi se la query viene eseguita.
    Inoltre, togli le parentesi dalla variabile nella stringa di query.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  8. #8
    Niente Alcio!

    mi da sempre il seguente errore:

    Warning: mysql_num_fields(): supplied argument is not a valid MySQL result resource in c:\programmi\easyphp1-8\www\listini\stampatabella3.php on line 15

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\programmi\easyphp1-8\www\listini\stampatabella3.php on line 18
    Query fallita !


    le righe incriminate sono queste:

    Codice PHP:
    $numfields mysql_num_fields($result); 
    //restituisce il numero di campi di un record 

    $res_count=mysql_num_rows($result); 
    // numero totale di records 
    come devo fare????

  9. #9
    Ma ora che vedo bene.... perché fai due query???
    Sostituisci la prima come segue:

    Codice PHP:
    $sql="select count(id) AS tot from $elencotabelle"
    $conta mysql_query($sql);
    $tot_record mysql_result($conta0'tot');
    mysql_free_result($conta); 
    Ora, la variabile $tot contiene il numero di record che fanno parte della tabella da te interrogata.

    Ora puoi fare quanto segue:

    Codice PHP:
    $campi mysql_list_fields("nome_db""$elencotabelle"$connessione);
    $num_colonne mysql_num_fields($campi); 
    In questo modo la variabile $num_colonne contiene il numero di colonne per la tabella richiesta da form.

    Prova un po?
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  10. #10
    Faccio le due query per la paginazione.
    Proprio come in questo articolo

    Il fatto è che se nella SELECT scrivo semplicemente il nome della tabella "costruttori", funziona tutto.
    Esegue la query e la paginazione dei risultati.

    Se nella SELECT scrivo ($elencotabelle), che comunque contiene il valore costruttori, non funziona.

    E' come se non riuscisse a prenderlo.

    Help!

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.