Newsgroup: it.comp.www.php
Titolo: select multiple estrazione da campi mysql

Salve, so di essermi imbarcato in un problema per me imossibile da
risolvere e quindi chiedo aiuto !!!!!!!!
Tramite un form inserisco dei dati con delle multiple e le memorizzo
in un db.
 
E fin qua ci sono riuscito scopiazzando a dx e sx (capisco molto poco
di programmazione).
Adesso devo leggere questi dati e dare ad ogniuno di essi un indirizzo
di riferimento.
 
E qua mi sono perso..............
 
Vi posto i listati in esame per meglio capre quello che ho spiegato:
 
Da questo form decido quale docente deve accedere....
<html>
 
<head>
<meta http-equiv="Content-Language" content="it">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
<title></title>
</head>
 
<body>
 
<div align="center">
<table border="1" width="626" id="table1" height="158">
		<tr>
			<td bgcolor="#CC0000" height="39">
			<p align="center"><font size="6" color="#FFFFFF" face="Verdana"><b>
			Gestione Giudizio Alunni e Altro</b></font></td>
		</tr>
		<tr>
			<td width="616" height="110" align="center" valign="top">
			<p align="center">&nbsp;</p>
			<table border="0" width="279" id="table3">
				<tr>
					<td align="center" width="91"><b>
					<font size="1" face="Verdana">
					<a href="index.html">
					<img border="0" src="casa.png" width="25" height="25"></a><br>
					HOME</font></b></td>
					<td align="center" width="92">&nbsp;</td>
					<td align="center" width="92"><b>
					<font size="1" face="Verdana">
					<img border="0" src="pennote.gif" width="27" height="27"><br>
					GIUDIZIO</font></b></td>
				</tr>
				<tr>
					<td align="center" width="275" colspan="3"
bgcolor="#CC0000">&nbsp;</td>
				</tr>
				<tr>
					<td align="center" width="275" colspan="3">
<form method="POST" action="scheda_doc_giud.php">
						<p>&nbsp;</p>
						<p><b><font size="2">DOCENTE
				<?php include "include_select_docenti.php"; ?>
						<br>
						PASSWORD&nbsp; <input type="text" name="pass" size="10"></font></
b></p>
						<p><input type="submit" value="Invia" name="B1"><input
type="reset" value="Reimposta" name="B2"></p>
					</form>
					</td>
				</tr>
				<tr>
					<td align="center" width="275" colspan="3"
bgcolor="#009933">&nbsp;</td>
				</tr>
				</table>
			<p>&nbsp;</td>
		</tr>
		</table>
</div>
 
</body>
 
</html>
 
---------------------------------------------------Vado alla pagina
php----------------------------------------
 
<html>
 
<head>
<title>Alunni</title>
</head>
 
<body>
<?php
include 'categ_Arry.php';
 
echo"    <div align='center'><center>
          <div align='center'>
		<table border='2' width='1024'>
		<tr><td size='4' width='25%'><p align='center'>
        <a href='
http://www.xxxxx/xxxxxxxx/index.html
'>
        <img border='0' src='
http://www.xxxxxx.it/xxxxxxx/casa.png
'
width='25' height='25'></a></td>
		<td size='4' bgcolor='#000080' colspan='2' width='75%'><p
align='center'><font face='Verdana' color='#FFFFFF'><b>SCHEDA DOCENTE</
b></font></td></tr>
		<tr><td width='25%' align=left size='2' bgcolor='#000099'><font
face='Verdana' color='#cccccc'><b>Docente</b></font></td>
        <td width='25%' align=left size='2' bgcolor='#000099'><font
face='Verdana' color='#FFFFFF'><b>Indirizzo</b></font> </td>
        <td width='50%' bgcolor='#000099'><font face='Verdana'
color='#FFFFFF'><b>Classi </b></font></td></tr></table>";
?>
<?php
echo"$q_d_docente - $pass";
//include 'categ_Arry.php';
include "lett_select_docenti.php";
 
$db=mysql_connect("62.xxx.xxx.xx", "Sqlxxxxxx", "xxxxxxxx");
$comando="select * from quinti_docenti where
(q_d_docente='$q_d_docente' AND pass='$pass')";
$res=mysql_db_query("Sqlxxxxxxxx_4",$comando);
 
$num=mysql_num_rows($res);
if($num==0)
echo "Nessun messaggio!";
else
{
while($dati=mysql_fetch_row($res))
{
echo "<table border=0 cellspacing=1 width=1024 align=center>";
echo "<tr><td>";
  $q_d_id=$dati[0];
  $q_d_docente=$dati[1];
  $q_c_=$dati[2];
  $q_i_=$dati[3];
  $q_ma_=$dati[4];
  $pass=$dati[5];
 
echo "<tr><td width='25%' align=left><font face='Verdana' size='1'
color='#000080'><b>$q_d_docente</b></font></td>
<td width='50%' align=left><font face='Verdana' size='1'
color='#000080'><b>- $indirizzo[$q_i_] -</b></font> </td>
 
<td width='25%' align=left><font face='Verdana' size='1'
color='#0066CC'><b> - $classe[$q_c_] - </b></font></td>
     </tr>";//<a href='
http://www.xxxxxxxxx.it/xxxxxxxxx/
 
lett_alunni_classe.php?q_c_=$classe[$q_c_]&q_d_docente=$d'></a>
}
mysql_close($db);
}
?>
</td></tr></table>
				</div>
        </center>
      </div>
 
</body>
 
</html>
 
--------------------------------------------
 
Qua comincia il problema infinito!!!!!!!!!!!!!!!!!!!!
 
Il risultato dovrebbe portarmi al docente, le classi del docente,gli
indirizzi di appartenenza dello stesso.
Cliccando sulla classe scelta, dovrei arrivare alla classe e poi poter
inserire i giudizi per il periodo prescelto per gli alunni con
insufficienze
 
So di chiedere molto, ma non riesco a vedere le classi.
 
Grazie anticipatamente

 So di chiedere molto, ma non riesco a vedere le classi.
 
C'è molta ironia in questa frase.
 
 
Tornando al merito della domanda: "lassa perde".
 
A meno di non trovare un volontario che si dedichi con molto altruismo 
conviene prendere un software qualsiasi già pronto che faccia quello che 
serve, se scopiazzi di qua e di là le cose funzioneranno molto male.
 
Il problema è che nella tua domanda hai mischiato tanti concetti, alcuni 
non chiari come "inserisco dei dati con delle multiple" (le multiple?) e 
altri inutili. Ma non si capisce subito quale sia il problema.
 
 
Il pappone di html/php/table tutto magicamente mischiato l'ho saltato a 
pie' pari, però scrollando ho visto un "Verdana" che mi ha confermato 
che ho fatto bene.

 che ho fatto bene.
 
Eh, che occhio da intenditore :)
 
@amatog
Stai per andare a sbattere con la faccia contro un muro molto duro
Molti di noi ci sono già passati (se non proprio lì magari nelle
vicinanze) e forte di questo mi sento di darti un consiglio.
Il problema che hai posto si risolve in mezza giornata con gli strumenti
adeguati. Prova a dare un'occhiata a qualche libreria ORM per php,
sevono appunto a fare quello che chiedi
 
IMHO se ti guardi un minimo Doctrine sei già a buon punto
Se ti guardi anche un motore di templating (Twig ad esempio) sei ancora
più avanti
 
My 0.02€
Marco
 
-- 
I cosi mi fattano

,

Bhe non posso darti tutti i torti.
Lasciando stare tutto il resto, la mia necessità è quella di creare
una specie di registro scolastico per inserire i giudizidegli alunni.
Il problemaè che il mio istituo è formato da 4 indirizzi 60 classi 110
docenti e circa 1400 alunni.
ho creato una serie di db tipo classi - docenti - alunni- materie etc
e considerando che ad esempio un docente può insegnare in più
indirizzi e più materie ho messo nei form delle selec multiple.
Il problema che non riesco a risolvere è quello di leggere i dati dal
db dei campi inseriti dalle select multiple ed associarle ad un array
che le trasforma da numeri a dati effettivi.
Spero adesso di essermi spiegato un pochino meglio, sai non essendo un
programmatore, ma un semplice autodidatta  non riesco ad usare la
giusta terminologia.
Comunque chiedo scusa per la confusione

 Comunque chiedo scusa per la confusione
 
L'html lo sorvolo pure io, ma presumo che la maschera di ricerca tu
l'abbia fatta come form
Quando del form fai submit all'interno hai dei campi select che hanno
ciascuno un nome e un valore
Se le select erano popolate correttamente avrai il valore che ti
interessa dentro la richiesta scatenata dal form
Da questo a trasformare in
WHERE a = 12 AND b = 34 AND c =4
non mi pare ci voglia poi molto
È qui che ti incagli?
M


 docenti e circa 1400 alunni.
 
Nel primo messaggio dici che capisci molto poco di programmazione, 
ripeto quanto ti e' gia' stato detto: lascia perdere, oppure parti dalle 
basi. Soprattutto se e' qualcosa che andra' pubblicato su internet, se 
non sai cosa stai facendo rischi di avere buchi di sicurezza tremendi. 
In alternativa puoi cercare qualcosa di gia' fatto.
 
Ciao.
 
-- 
Pubblicita' regresso: 
http://www.ferrero.org
 
** Per scrivermi in mail, sostituire nutella con ferrero...
** To contact me by email, change nutella to ferrero...
 

 non riesco ad usare la giusta terminologia.
 
Ribadisco quello che ti hanno detto.
Rimanda questo particolare problema al prossimo anno scolastico, o 
eventualmente prendete un software gia` pronto.
 
Ha ragione Motosauro: lo fai in pochi giorni. Se hai delle solide basi di 
programmazione.
 
Tu intanto parti dal basso, e fai, senza copiare qualcosa di piu` 
semplice, come per esempio il classico "lista della roba in DB, 
inserimento, modifica, cancellazione".
Poi rifallo ad oggetti.
Poi rifallo usando un framework (Zend, Symfony, CodeIgniter, ecc.).
Poi rifallo usando i css e con html semantico.
Poi rifallo usando javascript.
Poi rifallo usando un framework javascript (jQuery, Dojo, Sencha, ecc.).
Eventualmente poi rifallo usando la TDD.
 
Nel frattempo sara` passato qualche mese e potrai iniziare a lavorare sul 
progetto originario  e ti sara` molto piu` chiaro come procedere.
 
Bye.
 

 docenti e circa 1400 alunni.
 
Cercando 5 minuti ho trovato questo: 
http://lnx.martinifrancesco.net/wordpress/?p=2264
 



Ti ringrazio, lo ho scaricato ed è molto interessante, ma il mio
problema rimane lo stesso
- devo capire come leggere questo campo ,
 
Scrivo sul db con questa pagina php
 
<html>
<div align="center">
<TABLE cellSpacing=0 cellPadding=0 width=700 border=0>
<tr><td><h3 align="center">Inserimento</h3><hr><br>
<?php
$sel=$_REQUEST['sel'];
 
$db=mysql_connect("62.xxx.xxx.xx", "Sqlxxxxxx", "xxxxxxxx");
 
mysql_select_db("Sqlxxxxxx_4", $db);
var_dump($sel);
$comando = "INSERT INTO prova_select (sel) VALUES ('". implode(', ',
$sel) ."')";
mysql_db_query("Sql125150_4",$comando);
mysql_close($db);
echo "DATI INSERITI COME RICHIESTO! Grazie.<p>";
echo"<p><b><a href='inserimento_select.html'>Torna alla GESTIONE</a></
b></p>";
?>
<hr></td></tr></table></div></html>
 
e fin qui tutto bene, con il risultato nel campo che potrebbe essere
1,2,3,4
 
adesso mi serve leggerlo e scriverlo a video........ sto provando così
 
<html>
<?php
echo"<div align='center'>
        <center>
          <div align='center'>
			<table border='2' width='1024'>
				<tr><td size='4' width='100'><p align='left'>
          <a href='
http://www.xxxxx.it/registro/index.html
'>
          <img border='0' src='
http://www.xxxxx.it/registro/casa.png
'
width='25' height='25'></a></td>
		<td size='4' bgcolor='#000080'>	<p align='center'>
          <font face='Verdana' color='#FFFFFF'><b>Elenco Classi</b></
font></td>
			<td size='4' width='80'>&nbsp;</td>	</tr>";
?>
	<?php
 
$classe=array("","1az","2az","3az","4az","5az","1bz","2bz","3bz","4bz","5bz","1cz","2cz","3cz");
$db=mysql_connect("xx.xxx.xxx.xx", "Sqxxxxxx", "xxxxxxxx");
$comando="select * from prova_select";
$res=mysql_db_query("Sqxxxxxx_4",$comando);
$num=mysql_num_rows($res);
if($num==0)
echo "Nessun messaggio!";
else
{
echo "<tr><td width='25%' align=left size='2' bgcolor='#000099' >
<font face='Verdana' color='#FFFFFF'><b>Classe</b></font></td>
	</tr><tr><td width='17%' align=left><font face='Verdana'
size='4'><b>Classi</b></font></td></tr>";
 
while($dati=mysql_fetch_row($res))
{
echo "<table border=0 cellspacing=1 width=1024 align=center>";
echo "<tr><td>";
  $id=$dati[0];
  $sel=$dati[1];
echo "<tr><td width='17%' align=left><font face='Verdana' size='1'><b>
$sel </b></font></td></tr>";
}
mysql_close($db);
}
?>
</td></tr></table>
</table></div></center></div>
</body>
</html>
 
questo mi restituisce 1,2,3,4
 
se nella riga echo   al posto di $sel    scrivo  $classe[$sel] mi
restituisce , , ,
 
invece io vorrei 1az, 2az, 3az, 4az
 
grazie

 So di chiedere molto, ma non riesco a vedere le classi.
C'è molta ironia in questa frase.
Tornando al merito della domanda: "lassa perde". >
 
Di sicuro non aiuta nessuno questa risposta, ed avendo capito di aver
sbagliato nel chiedervi aiuto posso solo dire che senza alcuna ironia
e soprattutto senza lasciare stare ho risolto il problema, che un
mediocre programmatore avrebbe potuto risolvere in pochi minuti, mezza
giornata è servita a me che conosco pochissimo di programmazione.
 
Sarà rozzo e poco leggibile ma funziona
 
$pieces = explode("," , $q_c_);
$x=$pieces;
foreach ($x as $pieces)
{
$lungh_array = count($x);
for ($contatore=0; $contatore < $lungh_array; $contatore++)
{
$cla=$x[$contatore];
echo "<a target='_blank' href='cerca_alunni.php?q_c_=
$x[$contatore]'><font color='#CC0000' face='Verdana' size='1'><p
align='left'>$classe[$cla]</b></font></a> ";
}
break;
 
Grazie per l'aiuto
 

 Grazie per l'aiuto
 
Eh, con poco codice è facile.