Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Problemi con script

  1. #1

    Problemi con script

    Salve a tutti, vi scrivo perchè ho un problema, girando qua e là su google ho trovato delle discussioni e vari script sulla divisione in 2 colonne dei risultati di una ricerca interna al sito, vi posto quelli che penso possano essere più adattabili:

    codice:
    while($row= mysql_fetch_assoc($risultato)) {  $Titolo = $row['Titolo']; $Immagine = $row['Immagine']; $Descrizione = $row['Descrizione'];  for( $i = 0; $i < $risultato; $i++ ) { echo "<td>"; echo "$Titolo
    ","$Immagine
    ","$Descrizione
    "; echo "</td>"; if($i % 2 == 0) { echo '</tr><tr>'; }
    codice:
     $a = 1; $query = mysql_query("SELECT * FROM nome_tabella", $db); echo "<table><tr>\n"; while( $row = mysql_fech_object($query) ) { echo "<td>{$row->nome}
    {$row->sito}</td>\n"; if( $a == 2 ) {   echo "</tr>\n<tr>\n";   $a = 0; } $a++; } echo "</tr></table>";
    Ho trovato questi qui, che penso si possano adattare, ma non riesco propio a usari, non sono un esperto, quindi non sò come toccare i risultati, voglio semplicemente che mi metta i risultati su 2 colonne(quindi deve andare a capo ogni 2 record), il 1o funziona ma non và a capo ogni 2 record e mettendo il secondo mi dice errore di sintassi, visto che il primo apparentemente "lo prende",se potreste correggerlo, in maniera da permettermi di usarlo ve ne sarei gratissimo, se invece volete usare il secondo vi pregherei prima di spiegarmi magari perchè mi dà un errore di sintassi. Grazie.

  2. #2
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,743

    Re: Problemi con script

    Quando posti codice php usa i tag PHP e non CODE, così è più leggibile

    Prova questo

    Codice PHP:
    $i ;

    echo 
    '<table>' ;

    while ( 
    $row mysql_fetch_array($risultato) ) {  

    $i++ ;

    if ( 
    $i%== ) echo '<tr>' 

    echo 
    '<td>'.$row['Titolo'].'
    '
    .$row['Immagine'].'
    '
    .$row['Descrizione]'.'</td>' 


    if ( 
    $i%== ) echo '</tr>' 

    }

    if ( 
    $i%== ) echo '<td></td></tr>' 

    echo 
    '</table>' 
    Comunque sarebbe meglio usare i CSS
    Errare humanum est, perseverare ovest

  3. #3
    Il secondo ti da errore di sintassi perchè ci sono due parentesi che non sono associate a nulla tra $row e echo

    comunque ti ho scritto una cosetta che puoi riadattare..
    non l'ho testato e sicuramente c'è qualcuno che lo potrebbe fare 1000 volte meglio di me, ma avendolo scritto al volo penso ti possa andare bene:

    Codice PHP:
    <?php

      $myTable 
    '<table>';
      
    $riga 0;
      
      
    $query mysql_query("SELECT * FROM table");
      
    $num mysql_num_rows($query);
      while (
    $query_res mysql_fetch_array($query))
      {
         
    $campo1 =  $query_res['campo1'];
         
    $campo2 =  $query_res['campo2'];
         
         if(
    $riga == 0){
            
    $myTable .= '<tr>'
         }
         
         
    $myTable .= '<td> estraggo il campo 1 '.$campo1.' ed estraggo il campo 2 '.$campo2.'</td>';
         
         if(
    $riga == 0){
            
    $myTable .= '</tr>'
         }
         
    $riga++;
         if(
    $riga == 2){
            
    $riga 0
         }
      }
      
    $myTable .= '</table>';
    ?>

  4. #4
    Lascio aperto perche' ti hanno gia' risposto, pero' per la prossima volta leggiti bene il regolamento specialmente per quanto riguarda la scelta di un titolo e come postare il codice.

  5. #5
    scusa va modificato in questo modo:

    Codice PHP:

    $myTable 
    '<table  style="background-color:red;">';
      
    $riga 0;
      
      
    $query mysql_query("SELECT * FROM tabella");
      
    $num mysql_num_rows($query);
      while (
    $query_res mysql_fetch_array($query))
      {
         
    $campo1 =  $query_res['campo1'];
         
    $campo2 =  $query_res['campo2'];
         
         if(
    $riga == 0){
            
    $myTable .= '<tr>'
         }
         
         
    $myTable .= '<td style="background-color:green;"> estraggo il campo 1 '.$campo1.' ed estraggo il campo 2 '.$campo2.'</td>';
         
         
    $riga++;
         
         if(
    $riga == 2){
            
    $myTable .= '</tr>'
            
    $riga 0
         }
      }
      
    $myTable .= '</table>'
      echo 
    $myTable

  6. #6
    Mi scuso con i moderatori non avevo visto che era disponibile un tag per il php. adesso vedo se è possibile editare il messaggio. Ringrazio tutti per gli script, anche se non ho propio capito bene bene come usarli, il browser mi dà sempre errore di sintassi, comnque sempre su google ho trovato questo che funziona(ho fatto copia e incolla):
    Codice PHP:
    <?php 
    $db_host 
    "host"
    $db_user "DB_User";
     
    $db_password "pass"
    $db_name "prova"
     
    //connetto il database  
    $db mysql_connect($db_host$db_user$db_password) or die ('Errore durante la connessione'); 
    mysql_select_db($db_name$db) or die ('Errore durante la selezione del db');  $errMsg='';
    $cerca=isset($_POST['cerca']) && strlen($_POST['cerca'])>=$_POST['cerca'] : null

     
    $dati=array(); 

     if (
    $cerca===null) {    
    $errMsg='Querystring errata!'
    }
     else 
    {   
     
    $cerca="'%".mysql_escape_string($cerca). "%'";
     
    // cerco nel db   
     
    $query "SELECT * FROM Tabella WHERE Titolo LIKE $cerca OR Descrizione LIKE $cerca"
    $rs=mysql_query($query); 
    if (
    $rs && mysql_num_rows($rs)>0)    
    {       while (
    $row=mysql_fetch_assoc($rs))
              {
                  
    $dati[]=$row;
           }
        }    else    {
           
    $errMsg='Nessun risultato trovato!';
        }
     } 
    ?> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>index</title> 
    </head>
      <body>
      

    Risultati per: <?php print $cerca;?></p>
      <?php if ($errMsg!='') {
        print 
    '[b]'.$errMsg.'[/b]';
     } else {
    ?>
         <table border="1">
           <tr><th colspan="2"><?php print count($dati) . ' risultati';?></th></tr>
                 <?php
                 $i
    =0;
           
    // qui apro la riga come di SverX
              
    print '<tr>';
              foreach (
    $dati as $d)
              {
                 print 
    '<td>Titolo: ' $d['Titolo'].'
    '
    .$d['Immagine'].'
    Descrizione: '
    .$d['Descrizione'].'</td>';
                             ++
    $i;
                 if (
    $i%2==0)   // $i è pari?
                 
    {
                    print 
    '</tr><tr>';
                 }
              }
                        if (
    $i%2!=0)
              {
                              print 
    '<td></td>';
              }
              print 
    '</tr>';
           
    ?>
              </table>
      <?php }?>
      </body>
     </html>
    Ho provato lo script e funziona, adesso l'ho postato così come google me lo ha dato, anche se ho cambiato il titolo e provato un pò di cambiamenti, ma senza trovare la soluzione. Lo script visualizza il tutto senza limiti di oggetti per pagina e senza creare delle pagine in cui scorrere altri record eventuali, vorrei semplicemente che mi mettesse in basso: "Pagina 1 l 2 l 3 l .....10l" (per esempio) e che in alto a destra mi mettesse la pagina corrente: "Pagina 1" oppure "Pagina 1 di 10". Qualcuno sà come apportare queste modifiche senza scombussolare tutto? Quando ho fatto copia e incolla sono dovuto andare a capo io manualmente, quindi non vi meravigliate se magari mi è sfuggito qualche cosa o sono andato a capo tardi o prima, comunque l'ho ricopiato e funziona, se poi mi dite che c'è un errore ve lo ricopi osenza andare capo così non faccio casini.... Ciao!!

  7. #7
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,743
    Se funziona bene vuol dire che non ci sono problemi.

    Quel 'semplicemente' per la suddivisione in pagine non è poi tanto semplice, richiede un po' di codice in più.

    Mi ricordo che la cosa è stata discussa su questo forum, prova a cercare 'paginazione'. Si tratta di giocare un po' con LIMIT nella query ed altre cosette.

    Errare humanum est, perseverare ovest

  8. #8
    Ok dò un occhiata e cerco qualcosa, poi vi faccio sapere se ci riesco o no.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.