passare una variabile in query per ORDER BY

RobertaC

Nuovo Utente
2 Lug 2013
26
0
0
Buongiorno,mi sono appena iscritta a qst forum e spero che qualcuno possa aiutarmi.
ho una leggerissima infarinatura di php e mysql, ma sto trovando problematico il passaggio di una variabile in una query SELECT che poi mi ordini i risultati in base a una variabile corrispondente a un parametro a scelta dell'utente,
riporto il codice(con i suoi probabili 1000 errori) e spero che qualcuno possa fare chiarezza
il problema principale è sulla variabile $orderx che dovrebbe essere settata con il value della select scelto dall'utente e passato alla query, ma dopo il submit ricarica la stessa pagina pari pari, senza ordinare niente....HELP!


PHP:
<div id="divdx">
        <div id="divdx1">
            <h2>INCIDENT</h2>
            
            <br>
            <form name="form_ordinax" action="user_interface.php" method="post" align="center">
            <h4 align="center">Ordina per:</h4>
            <select name="ordinax">
                <option value="id_incident">ID Incident</option>
                <option value="priorita_segn">Priorità</option>
                <option value="data_apt1">Data di apertura</option>
                <option value="matr_cliente">Matricola cliente</option>
                <option value="gruppo_assegn">Gruppo assegnatario</option>
                <option value="assegnatario">Assegnatario</option>
                <option value="competenza">Competenza</option>
                <option value="scadenza">Scadenza</option>
                <option value="stato_attuale">Stato attuale</option>
            </select>
            <input type="submit" value="ORDINA" align="center">
            </form>
            <br>
                  
        </div>
        
        <?php

$hostname = "localhost";                                                          //apri connessione con il server MySQL
$username = "root";
$password = "";
$dbname = "monitoraggio";

$conn = mysql_connect($hostname, $username, $password) or die ('Errore durante la connessione al server MySQL. aaaarrrrghhhh' . mysql_error());  //Chiusura della connessione in caso di errore
            
            /*echo ("Connessione al server MySQL effettuata con successo.     The Machine spirit is prepared ");*/

$order = $_POST["ordinax"];

mysql_select_db($dbname, $conn) or die ('Errore durante l\'accesso al DataBase, THE MACHINE SPIRIT IS SLEEPING' . mysql_error());
$strSQL = "SELECT incident.id, incident.data_ap1, incident.matr_cliente, incident.priorita_segn, modif_stato.data_mod, modif_stato.gruppo_assegn, modif_stato.assegnatario, modif_stato.stato_attuale FROM incident, modif_stato
WHERE id=id_incid ORDER BY '".$order."' ASC";
                $risultato = mysql_query($strSQL);
                ?>
        
               <div id="divdx2">
            
            <table>
                <td>Id Incident</td>
                <td>Data Apertura</td>
                <td>Matr. Cliente</td>
                <td>Priorità</td>
                <td>Data modifica</td>
                <td>Gruppo Asseg.</td>
                <td>Assegnatario</td>
                <td>Stato attuale</td>
                <?php
                while ($riga = mysql_fetch_array ($risultato))
                {
                echo "<tr> \n";
                echo "<td>" . $riga ["id"] . "</td> \n";
                echo "<td>" . $riga ["data_ap1"] . "</td> \n";
                echo "<td>" . $riga ["matr_cliente"] . "</td> \n";
                echo "<td>" . $riga ["priorita_segn"] . "</td> \n";
                echo "<td>" . $riga ["data_mod"] . "</td> \n";
                echo "<td>" . $riga ["gruppo_assegn"] . "</td> \n";
                echo "<td>" . $riga ["assegnatario"] . "</td> \n";
                echo "<td>" . $riga ["stato_attuale"] . "</td> \n";
                echo "</tr> \n";
                
                }
                ?>
                
            </table>
            
        </div>
    </div>
 
Ultima modifica di un moderatore:

f107

Utente Attivo
7 Ago 2012
206
6
18
Roma
Buongiorno,mi sono appena iscritta a qst forum e spero che qualcuno possa aiutarmi.
ho una leggerissima infarinatura di php e mysql, ma sto trovando problematico il passaggio di una variabile in una query SELECT che poi mi ordini i risultati in base a una variabile corrispondente a un parametro a scelta dell'utente,
riporto il codice(con i suoi probabili 1000 errori) e spero che qualcuno possa fare chiarezza
il problema principale è sulla variabile $orderx che dovrebbe essere settata con il value della select scelto dall'utente e passato alla query, ma dopo il submit ricarica la stessa pagina pari pari, senza ordinare niente....HELP!


PHP:
<div id="divdx">
        <div id="divdx1">
            <h2>INCIDENT</h2>
            
            <br>
            <form name="form_ordinax" action="user_interface.php" method="post" align="center">
            <h4 align="center">Ordina per:</h4>
            <select name="ordinax">
                <option value="id_incident">ID Incident</option>
                <option value="priorita_segn">Priorità</option>
                <option value="data_apt1">Data di apertura</option>
                <option value="matr_cliente">Matricola cliente</option>
                <option value="gruppo_assegn">Gruppo assegnatario</option>
                <option value="assegnatario">Assegnatario</option>
                <option value="competenza">Competenza</option>
                <option value="scadenza">Scadenza</option>
                <option value="stato_attuale">Stato attuale</option>
            </select>
            <input type="submit" value="ORDINA" align="center">
            </form>
            <br>
                  
        </div>
        
        <?php

$hostname = "localhost";                                                          //apri connessione con il server MySQL
$username = "root";
$password = "";
$dbname = "monitoraggio";

$conn = mysql_connect($hostname, $username, $password) or die ('Errore durante la connessione al server MySQL. aaaarrrrghhhh' . mysql_error());  //Chiusura della connessione in caso di errore
            
            /*echo ("Connessione al server MySQL effettuata con successo.     The Machine spirit is prepared ");*/

$order = $_POST["ordinax"];

mysql_select_db($dbname, $conn) or die ('Errore durante l\'accesso al DataBase, THE MACHINE SPIRIT IS SLEEPING' . mysql_error());
$strSQL = "SELECT incident.id, incident.data_ap1, incident.matr_cliente, incident.priorita_segn, modif_stato.data_mod, modif_stato.gruppo_assegn, modif_stato.assegnatario, modif_stato.stato_attuale FROM incident, modif_stato
WHERE id=id_incid ORDER BY '".$order."' ASC";
                $risultato = mysql_query($strSQL);
                ?>
        
               <div id="divdx2">
            
            <table>
                <td>Id Incident</td>
                <td>Data Apertura</td>
                <td>Matr. Cliente</td>
                <td>Priorità</td>
                <td>Data modifica</td>
                <td>Gruppo Asseg.</td>
                <td>Assegnatario</td>
                <td>Stato attuale</td>
                <?php
                while ($riga = mysql_fetch_array ($risultato))
                {
                echo "<tr> \n";
                echo "<td>" . $riga ["id"] . "</td> \n";
                echo "<td>" . $riga ["data_ap1"] . "</td> \n";
                echo "<td>" . $riga ["matr_cliente"] . "</td> \n";
                echo "<td>" . $riga ["priorita_segn"] . "</td> \n";
                echo "<td>" . $riga ["data_mod"] . "</td> \n";
                echo "<td>" . $riga ["gruppo_assegn"] . "</td> \n";
                echo "<td>" . $riga ["assegnatario"] . "</td> \n";
                echo "<td>" . $riga ["stato_attuale"] . "</td> \n";
                echo "</tr> \n";
                
                }
                ?>
                
            </table>
            
        </div>
    </div>

Ciao,
tralasciando che non mi piace molto che metti i nome dei campi in una select, non manca il nome della tab quando fai l'order by??
Se non erro non usi alias nella query, quindi se vuoi ordinare per priorita_segn dovrai scrivere ORDER BY incident.priorita_segn

P.S.
Attenzione, a breve mysql per php verrà deprecato, poi ci sarà o PDO o mysqli
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
prova così
PHP:
<div id="divdx">
	<div id="divdx1">
		<h2>INCIDENT</h2>
		<br>
		<!-- se è una pagina unica usa $_SERVER così non devi preuccuparti di come si chiama la pagina-->
		<form name="form_ordinax" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" align="center">
			<h4 align="center">Ordina per:</h4>
			<select name="ordinax">
				<option value="id_incident">ID Incident</option>
				<option value="priorita_segn">Priorità</option>
				<option value="data_apt1">Data di apertura</option>
				<option value="matr_cliente">Matricola cliente</option>
				<option value="gruppo_assegn">Gruppo assegnatario</option>
				<option value="assegnatario">Assegnatario</option>
				<option value="competenza">Competenza</option>
				<option value="scadenza">Scadenza</option>
				<option value="stato_attuale">Stato attuale</option>
			</select>
			<input type="submit" value="ORDINA" align="center" name="ordina"><!-- metti il name -->
		</form>
	<br> 
</div>          
<?php
if(isset($_POST["ordina"])){//verifichi che sia stato premuto il submit se form e ricerca sulla stessa pagina
	$hostname = "localhost";//apri connessione con il server MySQL
	$username = "root";
	$password = "";
	$dbname = "monitoraggio";
	$conn = mysql_connect($hostname, $username, $password) or die ('Errore durante la connessione al server MySQL. aaaarrrrghhhh' . mysql_error());  //Chiusura della connessione in caso di errore
	mysql_select_db($dbname, $conn) or die ('Errore durante l\'accesso al DataBase, THE MACHINE SPIRIT IS SLEEPING' . mysql_error());           
    if (isset($_POST["ordinax"])){
		$order = $_POST["ordinax"];
	}else{
		$order = "id_incident";
	}
    $strSQL = "SELECT incident.id, incident.data_ap1, incident.matr_cliente, incident.priorita_segn, modif_stato.data_mod, modif_stato.gruppo_assegn, modif_stato.assegnatario, modif_stato.stato_attuale FROM incident, modif_stato
    WHERE id=id_incid ORDER BY ".$order." ASC";//su order by non ci vogliono gli apici
	$risultato = mysql_query($strSQL);
	//qui metterei un controllo
	/*
	if(mysql_num_rows($risultato) > 0){
	*/
?>
	<div id="divdx2">
	<table>
	<td>Id Incident</td>
	<td>Data Apertura</td>
	<td>Matr. Cliente</td>
	<td>Priorità</td>
	<td>Data modifica</td>
	<td>Gruppo Asseg.</td>
	<td>Assegnatario</td>
	<td>Stato attuale</td>
<?php
	while ($riga = mysql_fetch_array ($risultato)){
		echo "<tr> \n";
		echo "<td>" . $riga ["id"] . "</td> \n";
		echo "<td>" . $riga ["data_ap1"] . "</td> \n";
		echo "<td>" . $riga ["matr_cliente"] . "</td> \n";
		echo "<td>" . $riga ["priorita_segn"] . "</td> \n";
		echo "<td>" . $riga ["data_mod"] . "</td> \n";
		echo "<td>" . $riga ["gruppo_assegn"] . "</td> \n";
		echo "<td>" . $riga ["assegnatario"] . "</td> \n";
		echo "<td>" . $riga ["stato_attuale"] . "</td> \n";
		echo "</tr> \n"; 
	}
?>
	</table>  
	</div>
<?php
/*
	}else{
		echo "record non trovato";
	}
*/
}//fine dell'if submit
?>
</div>

poi appena puoi abbandona mysql e passa alla classe pdo o a mysqli

p.s.
quando posti del codice racchiudile tra gli appositi tag, seconda riga formattazione del post ultime tre iconcine, nell'ordine CODE HTML PHP
 

RobertaC

Nuovo Utente
2 Lug 2013
26
0
0
Funziona!!!!!!!!!

Grazie mille dell'aiuto
sapevo ci fossero tanti errori nel mio codice, purtroppo in vita mia nn mi sn mai accostata all'ambiente informatico, è solo da marzo ke sto seguendo un corso di formazione
gli strumenti che so utilizzare sono davvero pokini, ma è con questi ke devo affrontare lo stage in itinere(come ho già scritto in presentazione).
grazie ancora, sicuramente tornerò a kiedervi aiuto per le altre pagine della mia interfaccia
:elvis:
 

RobertaC

Nuovo Utente
2 Lug 2013
26
0
0
Altra piccola domanda

Sentitevi liberi di mandarmi a quel paese, ma ho un'altra breve domanda.
E' possibile rendere tutti i campi della colonna ID cliccabili, e associarli ad una query che mandi i dati di quel record ad un' altra pagina che ho già creato, per gestirne il contenuto????
 

RobertaC

Nuovo Utente
2 Lug 2013
26
0
0
grazie cmq

Sentitevi liberi di mandarmi a quel paese, ma ho un'altra breve domanda.
E' possibile rendere tutti i campi della colonna ID cliccabili, e associarli ad una query che mandi i dati di quel record ad un' altra pagina che ho già creato, per gestirne il contenuto????

grazie cmq ma ho già risolto
 
Discussioni simili
Autore Titolo Forum Risposte Data
F Come passare una variabile al modal di bootstrap PHP 1
F Passare una variabile php dal DB mysql alla pagina PHP 3
AMONRA75 [PHP] passare una variabile in una finestra MODAL PHP 1
T [PHP] passare una variabile in una finestra MODAL di bootstrap PHP 3
W Passare una variabile da una pagina all'altra PHP 25
G Passare valore ad una variabile con jQuery e PHP PHP 1
B AIUTO: come passare una variabile php ad una funzione javascript Javascript 2
7 Come passare una variabile internamente tra due funzioni... Javascript 3
V passare la scelta di una select ad un variabile php PHP 5
U passare una variabile di sessione da pagina di joomla a pagina php Joomla 3
P Passare una variabile a una query sql Database 0
P Passare solo una variabile di un form a pagina principale Javascript 1
B passare una variabile javascript ad una jsp Javascript 0
G passare una variabile da una prompt js a php Javascript 1
G Passare una variabile ad un applet PHP 1
E Conviene passare in sessione una variabile db ? Classic ASP 5
Fendo59 Passare parametri con metodo POST a una pagina in un frame PHP 0
M Passare una varibile da PHP a Javascript PHP 2
M [MS Access] Passare i dati di una query da form a report MS Access 3
M Passare una funzione a una proprietà di oggetto Javascript 2
M Passare coppie di coordinate in una google map Javascript 0
I Passare da una pagina all'altra di un sito web Javascript 5
P Passare un valore, o arriare una funzione da pagina2.php in pagina1.php Javascript 2
F Passare dati raccolti ad una pagina jQuery 1
G assegnare un valore da passare in post, da una lista jQuery 6
G Passare un argomento da una funzione all'altra con AJAX Ajax 7
M Passare il valore di una checkbox ad asp Classic ASP 1
C php, passare i valori di una lista PHP 4
M Passare il valore di una checkbox ad input text Javascript 0
M [php] passare valore di una select ] PHP 0
L far funzionare il "play"sotto le immagini per passare da una all'altra Flash 2
R passare valori da una form per un'anteprima Javascript 0
T passare una array ad una funzione PHP 2
B passare il risultato di una query da una pagina ad un'altra Javascript 4
S Passare parametri da una maschera all'altra MS Access 0
V Passare da una pagina all altra tramite bottoni Flash 47
E passare un id ad una function js Classic ASP 5
S passare un valore da un form a un file .php con metodo post PHP 4
R valore value di un id da passare in chiamata ajax Ajax 3
N Passare array da php a javascript PHP 5
S Passare query o utm alla pagina successiva Domini 1
P Passare solo alcuni parametri a script per CSV PHP 0
D passare valori da database sql a php PHP 1
P Passare contenuto in value. Ajax 1
P Passare i risultati di un foreach in un modal. Help! PHP 2
F Passare variabile a pulsante in finestra modale PHP 2
P jButton1ActionPerformed passare parametri ad altra classe Java 2
A Problema nel passare la variabile PHP 0
I Passare dei parametri in javascript PHP 0
N PDF fpdi passare variabile PHP 4

Discussioni simili