Problemi query da combobox

  • Creatore Discussione Creatore Discussione lid
  • Data di inizio Data di inizio

lid

Nuovo Utente
19 Mar 2008
3
0
0
Ciao a tutti,
sto provando a fare una query tramite combobox ma non funziona. :incazz2:

la prima pagina credo sia ok (l'unica cosa che vorrei sapere è come poter scegliere le tabelle da inserire nel combobox invece che averle tutte)
Il codice che uso ora è:

// SELECT FUNZIONANTE MA ESTRAE TUTTI I CAMPI
$sql ="select name from [db]..sysobjects where xtype = 'U'order by name";

La seconda pagina invece deve avere qualcosa di sbagliato ma non so cosa.


Pagina 1.php
:
Code:
PHP:
<?php 

error_reporting(E_ALL); 
ini_set('display_errors', 1); 
//----------------------------------------------------------------- 



$dbname = "[db]"; 
$link = mssql_connect("***", "****", "****")or die("Could not connect: " . mssql_error()); 
mssql_select_db($dbname) or die('Could not select database'); 
?> 


<html> 
<head></head> 
<body> 
<?php 



// SELECT FUNZIONANTE MA ESTRAE TUTTI I CAMPI 
$sql ="select name from [db]..sysobjects where xtype = 'U'order by name"; 


// processi la stringa (io ho usato mysql ma non è diverso devi solo chiamare la funzione corretta che dovrebbe essere mssql_query(....)) 
$result = mssql_query($sql); 


//verifichi il risultato se diverso da 0. Se fallisce significa che non ci sono tabelle nel db 
if (!$result) { 
echo "DB Error, could not list tables\n"; 
echo 'MSSQL ERROR: '.mssql_get_last_message(); 
exit; 
} 

?> 

<table width="100%" border="0" cellpadding="0" cellspacing="0"> 
<tr> 
<td width="171">Select table </td> 
<td width="620">codice</td> 
</tr> 
<tr> 
<td><form name="myform" method="post" action="test2b.php"> 
Tables: <select name="category" onChange="submit()"> 
<option value=""></option> 

<?php 

// cicli per estrarre tutti i nomi delle tabelle e crei direttamente il form di scelta. 
while ($row = mssql_fetch_row($result)) { 
echo "<option value=\"".$row[0]."\">".$row[0]."</option>"; 
} 

mssql_free_result($result); 
?> 

</select> 
</form> 
</td><td>&nbsp;</td> 
</tr> 
<tr><td>&nbsp;</td><td>&nbsp;</td> 
</tr> 
</table> 


</body> 
</html>


PAGINA "test2b.php"





Code:
PHP:
<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 
$dbname = '[db]'; 
$link = mssql_connect('***', '***', '***')or die("Could not connect: " .mssql_get_last_message()); 
mssql_select_db($dbname) or die('Could not select database'); 
if(isset($_POST['nome'])) { 
$azienda = $_POST['nome']; 
if($azienda == "[Telephony Daily AAA]"){ 
$sql = "SELECT Queue, Date, Abandoned, Abandoned_Percent 
from $azienda"; 
}else if($azienda == "[Telephony Daily BBB"){ 
$sql = "SELECT Queue, Date, Net, Answered 
from $azienda"; 
}else{ 
echo "errore nella definizione del nome azienda"; 
} 
echo $sql; 
} 


?> 
<html><head></head><body> 
<?php 
// processi la stringa (io ho usato mysql ma non è diverso devi solo chiamare la funzione corretta 
// che dovrebbe essere mssql_query(....)) 
$result = mssql_query($sql); 


//verifichi il risultato se diverso da 0. Se fallisce significa che non ci sono tabelle nel db 
if (!$result) { 
echo "DB Error, could not list tables\n"; 
echo 'MSSQL ERROR: '.mssql_get_last_message(); 
exit; 
} 
?>               
<table width="100%" border="1" cellpadding="0" cellspacing="0"><tr><td><div align="center">name/address</div></td><td><div align="center">department/surname</div></td><td><div align="center">field/history</div></td></tr> 
<?php 
//while ($row = mssql_fetch_array($result, MSSQL_ASSOC)) { 
// cicli l'array dei record per ircavare i dati 
while($row = mssql_fetch_row($result)){ 
echo "<tr><td><div>s".$row[0]."</div></td><td><div>".$row[1]."</div></td><td><div> 
".$row[2]."</div></td></tr>"; 
} 
mssql_free_result($result); 
mssql_close($link); 
                        ?>               
</table></body></html>



Quando lo testo questi sono gli errori:

Notice: Undefined variable: sql in C:\Program Files\xampp\htdocs\intranet\test2b.php on line 27

Warning: mssql_query() [function.mssql-query]: Query failed in C:\Program Files\xampp\htdocs\intranet\test2b.php on line 27
DB Error, could not list tables MSSQL ERROR: Changed database context to 'ctxd124z'.


La riga 27 è questa:

$result = mssql_query($sql);


Spero di aver messo tutte le informazioni necessarie!

Grazie in anticipo dell'aiuto! :)

Lid
 
Ho provato a controllara se la variabile $sql fosse definita e non lo è:incazz2:

echo $sql;
}else{
echo"Nessuna definizione";
}

Continua a darmi gli stessi errori:

errore nella definizione del nome azienda
Notice: Undefined variable: sql in C:\Program Files\xampp\htdocs\intranet\test2b.php on line 19

Notice: Undefined variable: sql in C:\Program Files\xampp\htdocs\intranet\test2b.php on line 43

Warning: mssql_query() [function.mssql-query]: Query failed in C:\Program Files\xampp\htdocs\intranet\test2b.php on line 43
DB Error, could not list tables


Linea 19: echo $sql;
Linea 43 $result = mssql_query($sql);
 
Nel primo file passi con POST 'category', mentre nel secondo cerchi $_POST['nome'] che non è definito.
 
ciao, Hai ragione, ho sistemato quella parte di codice, ma non mi risolve il problema.

Credo di non aver definito la funzione $sql ma non so cosa devo modificare o aggiungere per definirla.

Nessuna definizione
Notice: Undefined variable: sql in C:\Program Files\xampp\htdocs\intranet\test2b.php on line 51

Warning: mssql_query() [function.mssql-query]: Query failed in C:\Program Files\xampp\htdocs\intranet\test2b.php on line 51
DB Error, could not list tables

La linea linea 51 :$result = mssql_query($sql);

Codice:
f(isset($_POST['nome'])) { 
$azienda = $_POST['nome']; 
if($azienda == "[Telephony Daily AAA]"){ 
$sql = "SELECT Queue, Date, Abandoned, Abandoned_Percent 
from $azienda"; 
}else if($azienda == "[Telephony Daily BBB"){ 
$sql = "SELECT Queue, Date, Net, Answered 
from $azienda"; 
}else{ 
echo "errore nella definizione del nome azienda"; 
} 
echo $sql; 
}

il comobobox e $azienda dovrebbero essere giusti perchè quando lo stampo nella pagina mi dà il titolo selezionato.
if ($azienda != "") echo $azienda;
 
Ultima modifica:

Discussioni simili