Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Ordinare le righe della tabella HTML che vengono chiamati da MySQL

    Ho un database chiamato forms1 e una tabella di nome demo.
    I campi all'interno della tabella sono ID, Autore,Titolo, cit

    Vorrei avere per prima riga una riga che mi dia la possibilità di ordinare i valori alfanumerici che vengono richiamati dalla query, tipo così

    Nel mio caso, però non ho questo css. Attualmente si presenta così:



    Io vorrei cliccando su Nome e sulle altre intestazioni (in questo caso non ho messo il nome alle altre) riordinare i valori alfanumericamente A-Z o viceversa Z-A. Se ci sono simboli o numeri stesso discorso.

    Vorrei, però - ma non so come fare - che il valore ID parta sempre da 1 e proseguire in ordine numerico in base al numero dei valori richiamati x ogni volta che effettuo una query o un ordinamento . Nel mio caso, invece, è sempre dipendente dal valore che rappresenta.
    Vedete infatti dalla figura che i numeri appaiono in ordine sparso.
    Ecco, io non vorrei questo.
    Vorrei che ID fosse indipendente dai valori accanto.

    Ho tentato nella scheda Operazioni di Phpadmin di impostare ID su 1, ma non cambia nulla

    Ho provato a vedere queste 2 soluzioni, ma non capisco come incastrare il codice:

    1. http://stackoverflow.com/questions/3...led-from-mysql

    2. http://stackoverflow.com/questions/6...t-reverse?lq=1

    Il codice che ho è molto semplice, ci sono anche degli 3 errori, ma non capisco perchè:



    Poi non so perchè va via se faccio una ricerca. Cmq ecco il codice

    Codice PHP:
    <style>
    br {margin-bottom:-10px;}
    </style>

    <form action="cerca2.php" method="post">
    [b]Nome[/b]<input type="text" name="Nome">
    [b]Numero[/b]<input type="text" name="Numero">
    [b]city[/b]<input type="text" name="city">
    <input type="Submit">
    </form>

    <style>
    tr:nth-of-type(odd) { background-color: AZURE; }
    tr:nth-of-type(even) { background-color: CYAN; }
    </style>
    <style>
    tr:hover{background-color:DEEPSKYBLUE;}
    </style>

    <?php

    echo "<table border='1' style='border-collapse: collapse;border-color: silver;'>";  
    echo 
    "<tr style='font-weight: bold;'>";  
    echo 
    "<td width='auto' bgcolor=”#7FFFD4″>[i]ID<i/></td>";  
    echo 
    "<td width='auto' >[i]Nome<i/></td>";
    echo 
    "<td width='auto' ></td>";
    echo 
    "<td ></td>";
    echo 
    "</tr>";

    define('DB_NAME''forms1');
    define('DB_USER''root');
    define('DB_PASSWORD''');
    define('DB_HOST''localhost');

    $link mysql_connect(DB_HOSTDB_USERDB_PASSWORD);
    if (!
    $link) {
        die(
    'Could not connect: ' mysql_error());
    }

    $db_selected mysql_select_db(DB_NAME$link);

    if (!
    $db_selected) {
        die(
    'Can\'t use ' DB_NAME ': ' mysql_error());
    }

    $Nome str_replace(' ''%'$_POST['Nome']);
    $Numero str_replace(' ''%'$_POST['Numero']); 
    $city str_replace(' ''%'$_POST['city']); 

    $arNome str_split($Nome);
    $arNumero str_split($Numero);
    $arcity str_split($city);

    $Nome='';
    foreach (
    $arNome as $value
    {
       if (
    $value=='%') continue;
       
    $Nome.=$value.'%';

    }

    $Numero='';
    foreach (
    $arNumero as $value
    {
       if (
    $value=='%') continue;
       
    $Numero.=$value.'%';

    }

    $city='';
    foreach (
    $arcity as $value
    {
       if (
    $value=='%') continue;
       
    $city.=$value.'%';

    }

    $sql mysql_query("SELECT * FROM demo WHERE Autore LIKE '%$Nome%' AND Titolo LIKE '%$Numero%' AND cit LIKE '%$city%' ORDER BY Autore") or die(mysql_error());

    while(
    $row=mysql_fetch_array($sql)){

        echo 
    "<tr>";
        echo 
    "<td width='auto' bgcolor=”#FF0000 ″>" """[b]"  $row[0] . """<b/>""</td>";
        echo 
    "<td width='auto'>" "" $row[1] . "" "</td>";
        echo 
    "<td width='auto'>""</td>";
        echo 
    "<td width='auto'>" """[i]" $row[2] . "<i/>""" "</td>";     
        echo 
    "<td width='auto'>" """[i]" $row[3] . "<i/>""" "</td>";
        echo 
    "</tr>";
        
    }
    mysql_close();
    ?>
    Spero di essere completo nella mia richiesta

  2. #2
    Sono riuscito a risolvere uno dei 2 problemi che avevo posto.

    Per poter resettare l'ID ogni volta che si effettua una ricerca ho sostituito questo codice

    Codice PHP:
    while($row=mysql_fetch_array($sql)){

        echo 
    "<tr>";
        echo 
    "<td width='auto' bgcolor=”#FF0000 ″>" """[b]"  $row[0] . """<b/>""</td>";
        echo 
    "<td width='auto'>" "" $row[1] . "" "</td>";
        echo 
    "<td width='auto'>""</td>";
        echo 
    "<td width='auto'>" """[i]" $row[2] . "<i/>""" "</td>";     
        echo 
    "<td width='auto'>" """[i]" $row[3] . "<i/>""" "</td>";
        echo 
    "</tr>";
        

    con questo

    Codice PHP:
     $i 0; while($row=mysql_fetch_array($sql)){
            
    $i++;
            echo 
    "<tr>";
            echo 
    "<td width='auto' bgcolor=”#FF0000 ″>" """[b]"  $i """<b/>""</td>";
            echo 
    "<td width='auto'>" "" $row[1] . "" "</td>";
            echo 
    "<td width='auto'>""</td>";
            echo 
    "<td width='auto'>" """[i]" $row[2] . "<i/>""" "</td>";     
            echo 
    "<td width='auto'>" """[i]" $row[3] . "<i/>""" "</td>";
            echo 
    "</tr>";


    Ma non sono ancora riuscito a risolvere questo problema:
    http://stackoverflow.com/questions/3...led-from-mysql

  3. #3
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    La discussione che hai postato tu su http://stackoverflow.com è chiarissima, come vedo hai una funziona che ti richiama l'estrazione mysql_select_db() bene ti crei tante varianti di selezione nel tuo caso per nome o cognome e fai il select per cognome o nome, ecc

    guarda qui te lo spiega ancora meglio:

    Codice PHP:
    <?php
    $orderBy 
    = array('type''description''recorded_date''added_date');

    $order 'type';
    if (isset(
    $_GET['orderBy']) && in_array($_GET['orderBy'], $orderBy)) {
        
    $order $_GET['orderBy'];
    }

    $query 'SELECT * FROM aTable ORDER BY '.$order;

    // retrieve and show the data :)
    ?>

  4. #4
    A dir la verità non ho postato io quella domanda. Io ho postato queste 2:


    1. http://stackoverflow.com/questions/1...ml-table-mysql

    2. http://stackoverflow.com/questions/1...i-make-a-query

    e ho ottenuto delle risposte, ma per qualche ragione non riesco a comprenderle fino in fondo.
    Qualcosa è incompatibile e non riesco a rendere "sortable" le colonne.
    Una delle soluzioni, quella di GarethL (primo post) mi proponeva l'uso di uno script Javascript per rendere ordinabili i valori delle colonne, ma io penso che devo integrarlo con il php (comando echo)

    Se riesci a capire tu dalle risposte che mi hanno dato mi dici, in base al codice che ho, che cosa devo modificare o sostituire?

  5. #5
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Scarichi lo script da qui: http://tablesorter.com/docs/#Download

    Nella pagina dove stampi i risultati presi dal db inserisci nell'head:

    codice:
    <link rel="stylesheet" href="../themes/blue/style.css" type="text/css" id="" media="print, projection, screen" />
    		<script type="text/javascript" src="../jquery-latest.js"></script>
    		<script type="text/javascript" src="../jquery.tablesorter.js"></script>
    		<script type="text/javascript">
    		$(function() {
    			$("table").tablesorter({debug: true});
    		});
    		</script>
    Dopo dovresti solo sostituire qualcosa nel codice php che hai già fatto tu o hai preso da qualche parte.

    Ti faccio una cosa veloce poi la sistemi tu:

    Codice PHP:
    echo "<table id='rowspan' cellspacing='0' class='tablesorter'>";   
    echo 
    "<thead><tr>"
    echo 
    "<th>[i]ID<i/></th>";   
    echo 
    "<th>[i]Nome<i/></th>"
    echo 
    "<th></th>"
    echo 
    "<th ></th>"
    echo 
    "</tr></thead>";

    define('DB_NAME''forms1'); 
    define('DB_USER''root'); 
    define('DB_PASSWORD'''); 
    define('DB_HOST''localhost'); 

    $link mysql_connect(DB_HOSTDB_USERDB_PASSWORD); 
    if (!
    $link) { 
        die(
    'Could not connect: ' mysql_error()); 


    $db_selected mysql_select_db(DB_NAME$link); 

    if (!
    $db_selected) { 
        die(
    'Can'use ' . DB_NAME . '' . mysql_error()); 


    $Nome = str_replace(' ', '
    %', $_POST['Nome']); 
    $Numero = str_replace(' ', '
    %', $_POST['Numero']);  
    $city = str_replace(' ', '
    %', $_POST['city']);  

    $arNome = str_split($Nome); 
    $arNumero = str_split($Numero); 
    $arcity = str_split($city); 

    $Nome=''; 
    foreach ($arNome as $value)  

       if ($value=='
    %') continue; 
       $Nome.=$value.'
    %'; 



    $Numero=''; 
    foreach ($arNumero as $value)  

       if ($value=='
    %') continue; 
       $Numero.=$value.'
    %'; 



    $city=''; 
    foreach ($arcity as $value)  

       if ($value=='
    %') continue; 
       $city.=$value.'
    %'; 



    $sql = mysql_query("SELECT * FROM demo WHERE Autore LIKE '
    %$Nome%' AND Titolo LIKE '%$Numero%' AND cit LIKE '%$city%' ORDER BY Autore") or die(mysql_error()); 

    while($row=mysql_fetch_array($sql)){ 

        echo "<tbody><tr>"; 
        echo "<td width='
    auto' bgcolor=”#FF0000 ″>" . "". "[b]"  . $row[0] . "". "<b/>". "</td>"; 
        echo "<td width='
    auto'>" . "" . $row[1] . "" . "</td>"; 
        echo "<td width='
    auto'>". "</td>"; 
        echo "<td width='
    auto'>" . "". "[i]" . $row[2] . "<i/>". "" . "</td>";      
        echo "<td width='
    auto'>" . "". "[i]" . $row[3] . "<i/>". "" . "</td>"; 
        echo "</tr></tbody></table>"; 
         

    mysql_close(); 
    Credo sia giusto ma tu controlla, se hai problemi chiedi.

  6. #6
    ho provato, ma c'è qualche problema di formattazione. Potresti ricontrollare per cortesia?
    In pratica viene visualizzato solo il primo valore del database, ma gli altri appaiono male.
    Pare che funzioni l'ordinamento, ma non lo so con sicurezza dato che solo un valore appare nella tabella.

    Guarda l'immagine per capire meglio:


  7. #7
    Alla fine sono riuscito a risolvere il problema della formattazione, ma adesso ho questo errore adesso quando clicco sulle pagine 1 o 2. (ho aggiunto una paginazione)

    Notice: Undefined index: Nome in C:\xampp\htdocs\test2\test\zzz\pagination2\cerca6. php on line 75
    Notice: Undefined index: Numero in C:\xampp\htdocs\test2\test\zzz\pagination2\cerca6. php on line 76
    Notice: Undefined index: city in C:\xampp\htdocs\test2\test\zzz\pagination2\cerca6. php on line 77


    Ho inserito qui piu dettagliatamente la domanda:

    http://forum.html.it/forum/showthrea...readid=1525253

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.