<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[switch annidato in un while e mysql]]></title><description><![CDATA[<p dir="auto">è meno complicato di quello che sembra:<br />
ho una serie di macrotemi che racchiudono ognuno una serie di temi (per capirci: il classico regione-provincia)<br />
in una form ho un combo box che a seconda della scelta del macrotema popola il combo successivo.<br />
Il tutto fatto con AJAX.<br />
nella pagina php che crea xml come forma base c'è uno switch e per ogni case tutti i vari temi.<br />
Fatto così funziona alla grande, ma volevo che sia i macrotemi che i temi venissero estratti da un db per dare la possibilità al cliente di aggiungere o togliere temi o sottotemi.<br />
facendo lo switch e dando al case valori non estratti da db ma che corrispondo all'id per cui la query che estrae i sottotemi abbia l'id corrispondente su cui eseguire la ricerca il while sottostante cicla alla perfezione,<br />
ma quando faccio estrarre gli id temi dal db e faccio ciclare i case con all'interno il ciclo dei sottotemi si impiastra tutto. per facilità di comprensione ecco il listato di come è in origine:</p>
<p dir="auto">[php]<br />
&lt;?php<br />
//Imposto un header XML<br />
header("Content-type: application/xml");<br />
header("Cache-control: no-cache, must-revalidate");</p>
<p dir="auto">echo "&lt;?xml version="1.0"?&gt;\n";<br />
echo "&lt;categorie&gt;\n";</p>
<p dir="auto">//Recupero la variabile sulla quale effettuare i vari controlli<br />
$myChoice = @$_POST['choice'];</p>
<p dir="auto">//Eseguo il controllo<br />
switch($myChoice){<br />
case 1:<br />
echo "\t&lt;categoria value="1"&gt;A. Prima Voce&lt;/categoria&gt;\n";<br />
echo "\t&lt;categoria value="2"&gt;A. Seconda Voce&lt;/categoria&gt;\n";<br />
echo "\t&lt;categoria value="3"&gt;A. Terza Voce&lt;/categoria&gt;\n";<br />
break;</p>
<pre><code>case 2 :
	echo "\t&lt;categoria value=\"4\"&gt;B. Quarta Voce&lt;/categoria&gt;\n";
	echo "\t&lt;categoria value=\"5\"&gt;B. Quinta Voce&lt;/categoria&gt;\n";
	echo "\t&lt;categoria value=\"6\"&gt;B. Sesta Voce&lt;/categoria&gt;\n";
break;

case 3:
	echo "\t&lt;categoria value=\"7\"&gt;C. Settima Voce&lt;/categoria&gt;\n";
	echo "\t&lt;categoria value=\"8\"&gt;C. Ottava Voce&lt;/categoria&gt;\n";
	echo "\t&lt;categoria value=\"9\"&gt;C. Nona Voce&lt;/categoria&gt;\n";
	echo "\t&lt;categoria value=\"10\"&gt;C. Decima Voce&lt;/categoria&gt;\n";
break;

default:
	echo "\t&lt;categoria value=\"\"&gt;---&lt;/categoria&gt;\n";
break;
</code></pre>
<p dir="auto">}</p>
<p dir="auto">echo "&lt;/categorie&gt;\n";<br />
?&gt;<br />
[/php]<br />
e di come vorrei farla io<br />
[php]<br />
&lt;?php<br />
//Imposto un header XML<br />
header("Content-type: application/xml");<br />
header("Cache-control: no-cache, must-revalidate");</p>
<p dir="auto">echo "&lt;?xml version="1.0"?&gt;\n";<br />
echo "&lt;categorie&gt;\n";</p>
<p dir="auto">//Recupero la variabile sulla quale effettuare i vari controlli<br />
$myChoice = @$_POST['choice'];</p>
<p dir="auto">//Eseguo il controllo<br />
switch($myChoice){</p>
<p dir="auto">$querymacro=eseguo query estraendo id dei macrotemi<br />
while($macro=mysql_fetch_array($querymacro){<br />
$id=$macro['id']<br />
case $id:<br />
ciclo la query che estrae i temi dall'id macrotema con while etc etc{<br />
$nome= dato estratto dal db<br />
echo "\t&lt;categoria value=""&gt;$nome&lt;/categoria&gt;\n";<br />
break;<br />
}</p>
<pre><code>default:
	echo "\t&lt;categoria value=\"\"&gt;---&lt;/categoria&gt;\n";
break;
</code></pre>
<p dir="auto">}<br />
}<br />
echo "&lt;/categorie&gt;\n";<br />
?&gt;<br />
[/php]<br />
so che è un casino, ma se qualcuno è così misericordioso da volerci ficcare il naso...<br />
anche solo per dirmi che sono p**la e lo switch non funziona con il while.</p>
<p dir="auto">per la cronaca ho provato anche gli if semplici, ma mi salta all'else finale <img src="https://connect.gt/plugins/nodebb-plugin-emoji/emoji/android/1f61e.png?v=pjkabbjvlkk" class="not-responsive emoji emoji-android emoji--disappointed" title=":-(" alt="😞" /></p>
]]></description><link>https://connect.gt/topic/72290/switch-annidato-in-un-while-e-mysql</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 10:08:55 GMT</lastBuildDate><atom:link href="https://connect.gt/topic/72290.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 21 May 2008 09:36:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to switch annidato in un while e mysql on Wed, 21 May 2008 09:47:13 GMT]]></title><description><![CDATA[<p dir="auto">non c'è bisogno di nessuno switch <img src="https://connect.gt/plugins/nodebb-plugin-emoji/emoji/android/1f61b.png?v=pjkabbjvlkk" class="not-responsive emoji emoji-android emoji--stuck_out_tongue" title=":p" alt="😛" /></p>
<p dir="auto">basta fare la query e farla stampare a video <img src="https://connect.gt/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=pjkabbjvlkk" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" title=":)" alt="🙂" /></p>
]]></description><link>https://connect.gt/post/716032</link><guid isPermaLink="true">https://connect.gt/post/716032</guid><dc:creator><![CDATA[massimux]]></dc:creator><pubDate>Wed, 21 May 2008 09:47:13 GMT</pubDate></item></channel></rss>