Kemikal Inviato 18 Ottobre 2007 Segnala Condividi Inviato 18 Ottobre 2007 Ciao a tutti! Che bello usare MAMP per testare in locale quello che hai scritto, il problema nasce quando quello che hai scritto non funziona! Sono oramai sei ore che provo e riprovo senza ottenere risultati e fra un pò --> Ci sarebbe qualche anima pia che mi aiuta? Il risultato che vorrei ottenere non è (almeno credo) difficilissimo, ma, io, di php fino a ieri, non ne sapevo un h Ho fatto 1 pagina di login (Funziona Correttamente) Ho fatto 1 pagina che controlla il login (Funziona Correttamente) Ho fatto 1 pagina per la gestione (Che invia dati per la ricerca di midi sul database attraverso dei POST che poi sono recuperabili da una pagina di elaborazione dati). La pagina di elaborazione dati, non funziona. La riporto qui, così, qualcuno magari mi sa dire dove sbaglio.... <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN"> <html> <head> <title> Ricerca Midi </title> </head> <body style="background-color: rgb(255, 255, 204);"> <TABLE WIDTH=100% BORDER=2 CELLSPACING=4 CELLPADDING=4 style="border-collapse: collapse" bordercolor="#111111"> <TR> <TD align="center" bgcolor="#FFCC66"> <b> <font face="Verdana" size="2"> Nome Midi </font> </b> </TD> <TD align="center" bgcolor="#FFCC66"> <b> <font face="Verdana" size="2"> Autore </font> </b> </TD> <TD align="center" bgcolor="#FFCC66"> <b> <font face="Verdana" size="2"> Genere </font> </b> </TD> <TD align="center" bgcolor="#FFCC66"> <b> <font face="Verdana" size="2"> Consono <br> </font> </b> </TD> <TD align="center" bgcolor="#FFCC66"> <b> <font face="Verdana" size="2"> Url <br> Clic per ascoltare <br> </font> </b> </TD> <?php include ("config.inc.php"); $nome= $_POST['titolo']; $artista=$_POST['autore']; $genere=$_POST['genere']; // CASO C - Nome Vuoto Autore "Indicato" Genere "Tutti" - if ($_POST['titolo'] == null || $_POST['titolo'] == "" && $artista != "0" && $genere="0") { $query=mysql_query("SELECT * fROM m_midi WHERE id_artista=$artista"); while ($dati = mysql_fetch_array($query)) { $nome= htmlentities($dati["nome"]); $autore= htmlentities($dati["id_artista"]); $genere= htmlentities($dati["id_genere"]); $consono= htmlentities($dati["consono"]); $url= htmlentities($dati["url"]); $query1=mysql_query("SELECT * FROM m_artisti WHERE id_artista='$autore'"); while($temp1=mysql_fetch_array($query1)) { $artista= htmlentities($temp1["nome"]); } $query2=mysql_query("SELECT * FROM m_generi WHERE id_genere='$genere'"); while($temp2=mysql_fetch_array($query2)) { $genere2= htmlentities($temp2["descrizione"]); } if ($consono=="1") { $bit="Si"; } elseif ($consono=="0") { $bit="No"; } echo " <tr> <td> $nome </td> <td> $artista </td> <td> $genere2 </td> <td> $bit </td> <td> <a href='$url'> $url </a> </td> <tr>"; } } // OK VA! // CASO A - Nome Vuoto Autore "Tutti" Genere "Tutti - if ($_POST['titolo'] == null || $_POST['titolo'] == "" && $artista="0" && $genere="0") { $query=mysql_query("SELECT * fROM m_midi"); while ($dati = mysql_fetch_array($query)) { $nome= htmlentities($dati["nome"]); $autore= htmlentities($dati["id_artista"]); $genere= htmlentities($dati["id_genere"]); $consono= htmlentities($dati["consono"]); $url= htmlentities($dati["url"]); $query1=mysql_query("SELECT * FROM m_artisti WHERE id_artista='$autore'"); while($temp1=mysql_fetch_array($query1)) { $artista= htmlentities($temp1["nome"]); } $query2=mysql_query("SELECT * FROM m_generi WHERE id_genere='$genere'"); while($temp2=mysql_fetch_array($query2)) { $genere2= htmlentities($temp2["descrizione"]); } if ($consono=="1") { $bit="Si"; } elseif ($consono=="0") { $bit="No"; } echo " <tr> <td> $nome </td> <td> $artista </td> <td> $genere2 </td> <td> $bit </td> <td> <a href='$url'> $url </a> </td> <tr>"; } } // CASO B - Nome Scritto Autore "Tutti" Genere "Tutti - if ($_POST['titolo'] != null || $_POST['titolo'] != "" && $artista="0" && $genere="0") { $query=mysql_query("SELECT * fROM m_midi WHERE nome like '%$nome%'"); while ($dati = mysql_fetch_array($query)) { $nome= htmlentities($dati["nome"]); $autore= htmlentities($dati["id_artista"]); $genere= htmlentities($dati["id_genere"]); $consono= htmlentities($dati["consono"]); $url= htmlentities($dati["url"]); $query1=mysql_query("SELECT * FROM m_artisti WHERE id_artista='$autore'"); while($temp1=mysql_fetch_array($query1)) { $artista= htmlentities($temp1["nome"]); } $query2=mysql_query("SELECT * FROM m_generi WHERE id_genere='$genere'"); while($temp2=mysql_fetch_array($query2)) { $genere2= htmlentities($temp2["descrizione"]); } if ($consono=="1") { $bit="Si"; } elseif ($consono=="0") { $bit="No"; } echo " <tr> <td> $nome </td> <td> $artista </td> <td> $genere2 </td> <td> $bit </td> <td> <a href='$url'> $url </a> </td> <tr>"; } } ?> </body> </html> Spiego meglio la situazione. Il caso C preso in singola funziona benissimo. Il caso B preso in singola funziona benissimo. Il caso A preso in singola funziona benissimo. A e B insieme funzionano C e A insieme funzionano A e C non funzionano insieme, C mi dovrebbe mostrare solo 1 dato ed invece me ne mostra 3, ovvero : 1 dato proveniente dalla query di C + 2 dati provenienti dalla query di A....sono disperato....help me! Grazie a tutti! Ma quando una lunga serie di abusi e usurpazioni, volti a perseguire il medesimo obbiettivo, rivela il disegno di riunire tutti gli uomini all'assolutismo, è loro diritto e loro dovere rovesciare un sì fatto governo e provvedere alla sicurezza per l'avvenire. Link al commento Condividi su altri siti Altre opzioni di condivisione...
redvex Inviato 19 Ottobre 2007 Segnala Condividi Inviato 19 Ottobre 2007 nn te la prendere, ma è impossibile leggere del codice simile... per nn fare delle semplici join hai annidato 3 while :| e poi potresti gestire il tutto creandoti dinamicamente i where delle select sql anzichè gli if (dove tra l'altro secondo me qualche parentesi nn avrebbe fatto male). sarà che io a mysql delego quasi tutto il lavoro, ma come hai fatto tu fa rabbrividire scusa la franchezza. Se hai bisogno chiedi pure I miei widgets • La guida a Rails • Le mie foto su flikrPdC Calculator 2.0 • Soleluna 1.2 • PrezziBenzina 1.3 MyMovies 1.3 • MyConcert 1.1.1 • RiDoc 1.1 Redvex.it 1.0 • Gazzetta.it 1.0 Programmare per iPhone Link al commento Condividi su altri siti Altre opzioni di condivisione...
Kemikal Inviato 19 Ottobre 2007 Autore Segnala Condividi Inviato 19 Ottobre 2007 No, no, anzi, fai bene perchè così solo posso imparare qualcosa. Essenzialmente l'esecuzione di così tanti while è stata una "forzatura", inizialmente ero partito con l'idea di gestire differenti join, ma, dopo averne fatta una molto semplice per prova, ho scoperto che, all'atto della stampa alcune cose non andavano per il meglio. Ovvero, dopo la select (verificata su SQL) [...] echo "0"; $nome= htmlentities($dati["m_midi.nome"]); echo "$nome"; L'indicazione del m_midi.nome non sembrava piacergli, ovvero l'esecuzione del file si fermava a "0" e non mi arrivava mai a "nome" cosa che mi ha "costretto" dopo due giorni di tentativi ad optare per questa soluzione strana. Riprovo comunque a riscrivere la join...magari va :-p Ma quando una lunga serie di abusi e usurpazioni, volti a perseguire il medesimo obbiettivo, rivela il disegno di riunire tutti gli uomini all'assolutismo, è loro diritto e loro dovere rovesciare un sì fatto governo e provvedere alla sicurezza per l'avvenire. Link al commento Condividi su altri siti Altre opzioni di condivisione...
grigio60 Inviato 19 Ottobre 2007 Segnala Condividi Inviato 19 Ottobre 2007 anche a me sembra che il codice php sia scritto in un modo decisamente poco leggibile e sicuramente disordinato, il che potrebbe essere causa non ultima del cattivo funzionamento che hai osservato. per inciso: in tutti i tre casi A, B, e C la condizione "if titolo==null || titolo="" è comune a tutti, tanto valeva fare un unico if su questa condizione che comprende poi i casi A, B e C con il test soltanto sui campi Autore e Genere. un altro suggerimento: forse ti conviene non scrivere in html in quel modo, con i vari tag <font> e la tabella controllata con gli attributi invece che con le direttive di stile. vai di xhtml e css, ti semplifichi la vita e controlli meglio la presentazione. Serve aiuto? Posso darti una mano in Webmasters - Aiuto Software - Da Windows a Mac Mappa Utenti ItaliaMac [[miao]] Link al commento Condividi su altri siti Altre opzioni di condivisione...
redvex Inviato 19 Ottobre 2007 Segnala Condividi Inviato 19 Ottobre 2007 $dati["m_midi.nome"] si scrive semplicemente $dati["nome"], viceversa non ha senso per php. Naturalmente se hai + campi nella select che si chiamano nome li devi ridefinire tramite il comando sql "as" per esempio SELECT m_midi.nome as nome_midi. In questo caso lo richiamerai tramite $dati["nome_midi"] I miei widgets • La guida a Rails • Le mie foto su flikrPdC Calculator 2.0 • Soleluna 1.2 • PrezziBenzina 1.3 MyMovies 1.3 • MyConcert 1.1.1 • RiDoc 1.1 Redvex.it 1.0 • Gazzetta.it 1.0 Programmare per iPhone Link al commento Condividi su altri siti Altre opzioni di condivisione...
Kemikal Inviato 19 Ottobre 2007 Autore Segnala Condividi Inviato 19 Ottobre 2007 Ok, mi avete illuminato :-p potrei amarvi entrambi. Non ci avevo mica pensato che bastasse assegnare un alias... Grazie! Stasera riscrivo all! Ma quando una lunga serie di abusi e usurpazioni, volti a perseguire il medesimo obbiettivo, rivela il disegno di riunire tutti gli uomini all'assolutismo, è loro diritto e loro dovere rovesciare un sì fatto governo e provvedere alla sicurezza per l'avvenire. Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Archiviato
Questa discussione è archiviata e chiusa a future risposte.