• Home
  • Forum
  • Fare Web
  • PHP

[PHP - RISOLTO] Tabella dinamica: colonne selezionate da checkbox

  • Creatore Discussione Creatore Discussione username90
  • Data di inizio Data di inizio 27 Gen 2017
Prec.
  • 1
  • 2
  • 3
Succ.
Primo Prec. 2 di 3 Succ. Ultimo

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 2 Feb 2017
  • #21
ciao
prendi quello che hai fatto, salvalo con un altro nome (non si sa mai) e sostituisci con questo
PHP:
<?php
//qui dati di connessione
$matricola=$_POST['redattore'];
$wh="";
if(!empty($matricola)){
    $wh=" WHERE matricola=$matricola";//$matricola è un numero intero gli apici non ci vogliono
}
if(is_array($_POST['fields'])){
    $arr_campi=array_map('trim',$_POST['fields']);//eventuale ripulita
    $numero=count($_POST['fields'])-1;//servirà poi per fare la tabella
    $campi=implode(",",$arr_campi);
    $query= "SELECT $campi FROM tabella $wh";
    $ris = mysql_query($query);
    if(mysql_num_rows($ris)> 0){
        echo "<table>";
        echo "<tr><td>".str_replace(',' , '</td><td>' ,$campi )."</td></tr>";
        $j=0;//conteggio per cambio riga
        while($row=mysql_fetch_assoc($ris)){
            if($j==0){echo "<tr>";}
            echo "<td>".$row[$arr_campi[$j]]."</td>";
            $j++;
            if($j>=$numero){$j=0; echo "</tr>";}//verifica meglio il >=
        }
        echo "</table>";
    }else{
        echo "la ricerca non ha dato risultati";
    }
}else{
    echo "non hai selezionato almeno un'opzione";
}
//e qui un lin alla pagina del form
?>
prova e sappimi dire, quello che non capisco è perche il var_dump di ris dia resuorce ma il fetch dia quell'errore
 
Reactions: username90
U

username90

Nuovo Utente
27 Ott 2016
29
0
1
34
  • 3 Feb 2017
  • #22
Ciao Borgo, scusami se ti faccio sapere solo ora.. allora ho fatto come hai detto tu e mi dà errore su mysql_num_rows() expects parameter 1 to be resource, boolean given e stampa la scritta la ricerca non ha dato risultati. Sono senza speranze.. ormai pure la notte penso a come risolvere...
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 3 Feb 2017
  • #23
ciao
non preuccuparti, l'unica cosa è che non capisco perchè dia quell'errore, ora provo a farmi tabella e faccio delle prove.
comunque chiederò anche iauto per vedere se si risolve
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 3 Feb 2017
  • #24
ciao un dubbio
nella $query ho scritto FROM tabella
hai sostituito il nome con il nome della tua tabella?
 

zorro

Utente Attivo
20 Ott 2014
334
22
28
ROMA
  • 3 Feb 2017
  • #25
Ciao username90,
Prova questo, poi, se va bene ti mando il codice e la tabella. A me funge
(ovviamente poi è da sistemare: giusto per la funzionalità)

Zorro
 
Ultima modifica: 4 Feb 2017

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 3 Feb 2017
  • #26
ciao
ho fatto la tabella viewselettiva limitata a solo 4 voci, messa in un'unica pagina per fare prima e messo delle select matricola a caso e ho fatto delle prove
non da l'errore che dici anche se avevo fatto un errore di logica nel while per la visualizzazione delle voci checcate (guarda come ho modificato), questo codice funziona, copialo (solo la parte php, non il form) nella pagina richiamata dal tuo form e provalo
PHP:
<?php
$host = 'localhost';     //qui devi mettere i tuoi valori di connessione
$username = 'root';
$password = 'password';
$db = 'prove';
$conn = @mysql_connect($host,$username,$password) or die (mysql_error());
$sel = @mysql_select_db($db) or die (mysql_error());
//---connessione----------------------------------------------------
if(isset($_POST['cerca'])){
    $matricola=$_POST['redattore'];
    $wh="";
    if(!empty($matricola)){
    $wh=" WHERE matricola=$matricola";//$matricola è un numero intero gli apici non ci vogliono
    }
    if(is_array($_POST['fields'])){
        $arr_campi=array_map('trim',$_POST['fields']);//eventuale ripulita
        $numero=count($_POST['fields'])-1;//servirà poi per fare la tabella
        $campi=implode(",",$arr_campi);
        $query= "SELECT $campi FROM viewselettiva $wh";
        echo "<pre>";
        //var_dump($query);// OK
        $ris = mysql_query($query);
        //var_dump($ris);// OK
        if(mysql_num_rows($ris)> 0){// OK
               echo "<table>";
            echo "<tr><td>".str_replace(',' , '</td><td>' ,$campi )."</td></tr>";
            while($row=mysql_fetch_assoc($ris)){// OK
                //interno del while aggiustato
                echo "<tr>";
                for($k=0;$k<=$numero;$k++){
                    echo "<td>".$row[$arr_campi[$k]]."</td>";
                }
                echo "</tr>";
            }
            echo "</table>";
        }else{
            echo "la ricerca non ha dato risultati";
        }
        echo "</pre>";
    }else{
        echo "non hai selezionato almeno un'opzione";
    }
}
?>
<form name="form1" enctype="multipart/form-data" method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
<select name="redattore" id="redattore">
  <option value="1">pinco</option>
  <option value="2">pallo</option>
  <option value="3">sempronio</option>
</select><br />
<input type="checkbox" name=fields[] value="Tipologia" checked>Tipologia<br />
<input type="checkbox" name=fields[] value="Nome" checked>Nome ricetta<br />
<input type="checkbox" name=fields[] value="Porzioni" checked>Porzioni<br />
<input type="checkbox" name=fields[] value="Calorie" checked>Calorie<br />
<input type="submit" name="cerca" value="Visualizza">
</form>
detto questo non capisco perche a te dia quell'errore o su mysql_num_rows o su mysql_fetch_assoc
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 3 Feb 2017
  • #27
cia @zorro
anche a me funziona, quello che non riesco a capire perche dia quell'errore mysql_num_rows() expects parameter 1 to be resource
 

zorro

Utente Attivo
20 Ott 2014
334
22
28
ROMA
  • 3 Feb 2017
  • #28
Nel mio codice?
A me non dà nessun errore
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 3 Feb 2017
  • #29
ciao @zorro
non ho detto che il tuo codice non funzioni, ma che username80 ha quell'errore che non capisco da dove provenga, la query gli da resource... e quindi vuol dire che va a buon fine, ma la successiva istruzione mysql_fetch_assoc (oppure la mysql_num_rows) a user80 dice che manca il parametro come se la query non fosse riuscita.
errore che a te e al mio codice evidentemente non da.
 

zorro

Utente Attivo
20 Ott 2014
334
22
28
ROMA
  • 4 Feb 2017
  • #30
In effetti anche a me dava errore (soprattutto nella query di lettura) con mysql; provando poi con mysqli pare che tutto funzioni.......
Certo bisogna vedere se pure a username funziona il mio codice
 
U

username90

Nuovo Utente
27 Ott 2016
29
0
1
34
  • 6 Feb 2017
  • #31
borgo italia ha scritto:
ciao un dubbio
nella $query ho scritto FROM tabella
hai sostituito il nome con il nome della tua tabella?
Clicca per allargare...
Scusa se rispondo ora, ma non avevo visto le notifiche.. comunque si avevo sostituito il nome della tabella.
 
U

username90

Nuovo Utente
27 Ott 2016
29
0
1
34
  • 6 Feb 2017
  • #32
zorro ha scritto:
Ciao username90,
Prova questo, poi, se va bene ti mando il codice e la tabella. A me funge
(ovviamente poi è da sistemare: giusto per la funzionalità)

Zorro
Clicca per allargare...
Ciao @zorro si questo funge come vorrei funzionasse anche il mio.. Scusa se rispondo ora ma non avevo visto le notifiche. Ora sto rispondendo anche a Borgo man mano che leggo le vostre risposte.
 
Ultima modifica: 6 Feb 2017
U

username90

Nuovo Utente
27 Ott 2016
29
0
1
34
  • 6 Feb 2017
  • #33
@borgo italia ho provato a copiare il php che hai scritto tu, ma niente sempre la solita risposta leggo, ovvero:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\bdd\redazione\stampa.php on line 29
la ricerca non ha dato risultati .
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 6 Feb 2017
  • #34
ciao
non capisco perchè venga fuori quell'errore
prova a passare a mysqli correggi semplicemente la parte php, ho segnato le righe con //nuova con MYSQLI
PHP:
<?php
$host = 'localhost';     //qui devi mettere i tuoi valori di connessione
$username = 'root';
$password = 'password';
$db = 'prove';
$conn = mysqli_connect($host,$username,$password, $db) or die (mysqli_error());//nuova con MYSQLI
//---connessione----------------------------------------------------
if(isset($_POST['cerca'])){
    $matricola=$_POST['redattore'];
    $wh="";
    if(!empty($matricola)){
    $wh=" WHERE matricola=$matricola";//$matricola è un numero intero gli apici non ci vogliono
    }
    if(is_array($_POST['fields'])){
        $arr_campi=array_map('trim',$_POST['fields']);//eventuale ripulita
        $numero=count($_POST['fields'])-1;//servirà poi per fare la tabella
        $campi=implode(",",$arr_campi);
        $query= "SELECT $campi FROM viewselettiva $wh";
        echo "<pre>";
        //var_dump($query);// OK
        $ris = mysqli_query($conn,$query);//nuova con MYSQLI
        //var_dump($ris);// OK
        if(mysqli_num_rows($ris)> 0){//nuova con MYSQLI
               echo "<table>";
            echo "<tr><td>".str_replace(',' , '</td><td>' ,$campi )."</td></tr>";
            while($row=mysqli_fetch_assoc($ris)){//nuova con MYSQLI
                //interno del while aggiustato
                echo "<tr>";
                for($k=0;$k<=$numero;$k++){
                    echo "<td>".$row[$arr_campi[$k]]."</td>";
                }
                echo "</tr>";
            }
            echo "</table>";
        }else{
            echo "la ricerca non ha dato risultati";
        }
        echo "</pre>";
    }else{
        echo "non hai selezionato almeno un'opzione";
    }
}
?>
 
Reactions: username90
U

username90

Nuovo Utente
27 Ott 2016
29
0
1
34
  • 6 Feb 2017
  • #35
no così non mi fa selezionare nulla dal menu a tendina del redattore..vabbè ragazzi vi ringrazio per la vostra disponibilità vorrà dire che non lo farò così questa operazione.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 6 Feb 2017
  • #36
Ciao, stampate gli errori SQL : aiutano a capire
PHP:
$ris = mysql_query($query);
 if(!$ris) {
    echo mysql_error();
    die();
}
 
Reactions: username90
U

username90

Nuovo Utente
27 Ott 2016
29
0
1
34
  • 6 Feb 2017
  • #37
Allora ho fatto come suggerito da @criric e ho scoperto l'errore: $wh=" WHERE matricola=$matricola"; matricola era sconosciuto... ho sostituito il termine matricola con redattore (perchè così si chiama il campo nella tabella viewselettiva) e ho ottenuto finalmente quello che volevo. Grazie mille a tutti voi che mi avete "supportato" e "sopportato" per questi giorni.
 

zorro

Utente Attivo
20 Ott 2014
334
22
28
ROMA
  • 6 Feb 2017
  • #38
Io comunque, anche se non serve che hai già rilsolto, ti posto ugualmente il mio codice:


HTML

HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>

<body>
<form method="get" action="VISUTAB.php">
    <table align="center" width="900" border="0">
        <tr>
            <td colspan='4' align="center" height="50"><h1>Elenco ricette per redattore</h1></td>
        </tr>
        <tr>
            <td colspan='4' align="center" height="60"><b>Elenco ricette in archivio validate da un redattore e possibilita' di selezionare<br>i campi da mostrare tra quelli disponibili.</b></td>
        </tr>
        <tr>
            <td colspan='4' height="50">&nbsp;</td>
        </tr>
        <tr>
            <td rowspan="8" width="90">Redattore:</td>
            <td rowspan="8" width="350">
                <select name="redattore">
                    <option value="">Effettua una selezione</option>
                    <option value="pippo">pippo</option>
                    <option value="pluto">pluto</option>
                    <option value="paperino">paperino</option>
                </select>
            </td>
            <td rowspan="8">Campi da visualizzare:</td>
            <td><input type="checkbox" name="fields[]" value="Tipologia" checked>Tipologia</td>
        </tr>
        <tr>
            <td><input type="checkbox" name="fields[]" value="NOME_RICETTA" checked>Nome ricetta</td>        
        </tr>
        <tr>
            <td><input type="checkbox" name="fields[]" value="Porzioni" checked>Porzioni</td>        
        </tr>
        <tr>
            <td><input type="checkbox" name="fields[]" value="Calorie" checked>Calorie</td>        
        </tr>
        <tr>
            <td><input type="checkbox" name="fields[]" value="Tempo_COTT" checked>Tempo cottura/preparazione</td>        
        </tr>
        <tr>
            <td><input type="checkbox" name="fields[]" value="Difficolta" checked>Difficolta</td>        
        </tr>
        <tr>
            <td><input type="checkbox" name="fields[]" value="Note" checked>Note</td>        
        </tr>
        <tr>
            <td><input type="checkbox" name="fields[]" value="Preparazione" checked>Preparazione</td>        
        </tr>
        <tr>
            <td colspan='4' height="150" align='center'><input type="submit" name="cerca" value="Visualizza"></td>
        </tr>
    </table>
</form>
</body>
</html>


e php


PHP:
<?php
$scelte = $_GET['fields'];
$redattore = $_GET['redattore'];

$cont = count($scelte);
$wh='where REDATTORE = '."'".$redattore."'";

echo '<br><h2><center>Redattore: '.$redattore.'</centr></h2><br><br>';

$stringacampi=implode(" , ",$scelte);

// nome di host
$host = "..........";
// username dell'utente in connessione
$db_user = "..........";
// password dell'utente
$db_psw = "..........";
// nome del database
$database = '..........';


//************stringa di connessione al DB*************

$connessione = new mysqli($host, $user, $password, $database);

// verifica su eventuali errori di connessione
if ($connessione->connect_errno) {
    echo "Connessione fallita: ". $connessione->connect_error . ".";
    exit();
}

if (!$result = $connessione->query("SELECT $stringacampi FROM RICETTE $wh")) {
    echo "Errore della query: " . $connessione->error . ".";
}else{
    // conteggio dei record
    if($result->num_rows > 0) {
       echo '<table width="900" align="center" cellspacing="0" cellpadding="10" border="1">';
       echo '    <tr  bgcolor="#D2D2D2">';
       for ($ind=0;$ind<$cont;$ind++) {
           echo '        <th>'.$scelte[$ind].'</th>';
       }
       echo '    </tr>';
       echo '    <tr>';
       while($row = $result->fetch_array(MYSQLI_ASSOC)) {
                  for ($ind=0;$ind<$cont;$ind++) {
                         echo '<td><center>'.$row[$scelte[$ind]].'</center></td>';
                  }  
                  echo '    </tr>';
       }
       echo '</table>';
       // liberazione delle risorse occupate dal risultato
       $result->close();
    }
}

?>

Bisogna fare sempre attenzione alla corrispondenza tra i nomi
 
Reactions: username90

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 6 Feb 2017
  • #39
Il codice di Zorro è molto interessante, primo perchè utilizza l'estensione mysqli che è molto più performante e sicura della vecchia e ormai deprecata mysql, poi perchè utilizza l'approccio ad oggetti che rende il tutto più elegante ma sopratutto perchè per ogni eventuale errore mostra un messaggio e una descrizione, molto importante in fase di sviluppo.
Vorrei comunque fare un paio di osservazioni:
- non c'è nessun controllo sui dati ricevuti, questo potrebbe agevolare il lavoro di qualche malintenzionato ( SQL Injection )
- la connessione viene chiusa solo se presente almeno un record
- $wh = 'where REDATTORE = ' . "'" . $redattore . "'"; non sono convinto sull'uso degli apici
edit:
provati gli apici la stringa è corretta, sono solo abituato a vederla scritta cosi
PHP:
$wh = "where REDATTORE = '$redattore'";
 
Ultima modifica: 6 Feb 2017
Reactions: zorro and username90

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 6 Feb 2017
  • #40
ciao
altra piccola ossevazione: perchè udi il metodo GET, è meglio il POST
 
Prec.
  • 1
  • 2
  • 3
Succ.
Primo Prec. 2 di 3 Succ. Ultimo
Devi accedere o registrarti per poter rispondere.

Discussioni simili

C
[RISOLTO][PHP] Conteggio righe di una tabella
  • Coby
  • 9 Ago 2018
  • PHP
Risposte
4
Visite
6K
PHP 18 Ago 2018
Coby
C
A
[PHP] RISOLTO Invio Mail con Tabella
  • Alex@1983
  • 4 Mag 2018
  • PHP
Risposte
2
Visite
2K
PHP 4 Mag 2018
Alex@1983
A
[PHP] [RISOLTO]Sovrascrivere testo in una tabella
  • elpirata
  • 19 Dic 2017
  • PHP
Risposte
2
Visite
2K
PHP 19 Dic 2017
elpirata
G
[RISOLTO][PHP] Estrapolare dati da Tabella
  • GGG
  • 16 Nov 2016
  • PHP
Risposte
11
Visite
2K
PHP 4 Feb 2017
GGG
G
[RISOLTO]Stampare giorno della settimana in tabella php
  • elpirata
  • 9 Ago 2016
  • PHP
Risposte
6
Visite
4K
PHP 9 Ago 2016
elpirata
C
[RISOLTO]Inserimento variabile php in input html
  • Cristian83
  • 16 Apr 2020
  • PHP
  • 2
Risposte
20
Visite
8K
PHP 18 Apr 2020
Cristian83
C
[RISOLTO] SQL PHP IIS
  • moustache
  • 7 Apr 2020
  • PHP
Risposte
8
Visite
2K
PHP 9 Apr 2020
moustache
L
update tabelle in php mysql [risolto]
  • luigithen
  • 31 Mar 2020
  • PHP
Risposte
6
Visite
2K
PHP 31 Mar 2020
luigithen
L
A
[PHP] Problema query insert [RISOLTO]
  • Arawan Omacha
  • 10 Ott 2019
  • PHP
Risposte
14
Visite
3K
PHP 17 Apr 2020
Arawan Omacha
A
B
[PHP] recuperare IP dei server in load balancing [RISOLTO]
  • bdario58
  • 28 Giu 2019
  • PHP
Risposte
3
Visite
2K
PHP 29 Giu 2019
bdario58
B
K
[RISOLTO] Problema Griglia Php+Mysql
  • killu
  • 11 Giu 2019
  • PHP
Risposte
13
Visite
4K
PHP 13 Giu 2019
killu
K
C
[RISOLTO][PHP] Errore di sintassi
  • Crios816
  • 14 Set 2018
  • PHP
Risposte
8
Visite
3K
PHP 23 Set 2018
Max 1
[RISOLTO][PHP] Problema Pagination
  • Kolop
  • 19 Ago 2018
  • PHP
Risposte
2
Visite
1K
PHP 19 Ago 2018
Kolop
C
  • Bloccata
[RISOLTO][PHP] Funzione ONclick
  • Coby
  • 18 Ago 2018
  • PHP
Risposte
14
Visite
3K
PHP 23 Ago 2018
Max 1
N
[PHP] Utilizzo variabili di sessione [Risolto]
  • navajo75
  • 4 Ago 2018
  • PHP
Risposte
13
Visite
7K
PHP 14 Ago 2018
Max 1
[RISOLTO][PHP] Webserver o devserver?
  • Tommy03
  • 31 Lug 2018
  • PHP
Risposte
2
Visite
3K
PHP 11 Ago 2018
Tommy03
[PHP] Problemi cancellazione dato su DB [RISOLTO]
  • spider81man
  • 13 Lug 2018
  • PHP
Risposte
1
Visite
1K
PHP 13 Lug 2018
spider81man
[PHP][RISOLTO] Sommare gli importi estratti da un ciclo while
  • elpirata
  • 21 Dic 2017
  • PHP
Risposte
3
Visite
4K
PHP 21 Dic 2017
elpirata
[PHP][RISOLTO] Effettuare la somma dei tempi di lavorazione
  • elpirata
  • 20 Dic 2017
  • PHP
Risposte
3
Visite
3K
PHP 20 Dic 2017
elpirata
A
[RISOLTO]Recuperare dati inviati con json tramite php
  • ArribA
  • 10 Dic 2017
  • PHP
Risposte
4
Visite
3K
PHP 10 Dic 2017
marino51
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • PHP
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?