echo che dipende dall'estrazione o meno di un record

mediasteno

Utente Attivo
25 Gen 2010
120
0
0
Salve, spero che qualcuno mi aiuti. In una pagina visualizzo un elenco di strutture ricettive nella forma denominazione via città recapiti. Queste strutture ricettive sono estratte da una prima tabella di un database. Per alcune strutture, in un'altra tabella, sono presenti ulteriori informazioni (servizi in camera, parcheggio, info ecc.). Il mio intento è di fare in modo che se trattasi di una struttura che abbia anche delle informazioni aggiuntive, venga stampato a video oltre all'indirizzo della struttura anche "maggiori info" con il link alla scheda della struttura, in caso contrario la dicitura "maggiori info" non deve essere stampata.
Il codice deve essere impostato in modo tale che si realizzi questa condizione:
Clicco su una categoria ed estraggo dalla tabella struttureric tutte le strutture ricettive che hanno come categoria quella cliccata.
La struttura ricettiva se ha un campo equivalente nella tabella info_strutture allora deve visualizzare a video oltre i suoi dati anche maggiori informazioni altrimenti solo i dati. Questa condizione va verificata controllando se nella tabella info_strutture ci sia il campo relativo all'id_struttura selezionata.
Io ho impostato il codice in questo modo:
PHP:
<?php
if (isset($_GET['categoria']))
   {
     $categoria = ($_GET['categoria']);
     require 'connessione.php';
             $sql_cat = "SELECT id_strutture FROM categorie_strutture WHERE categoria LIKE '$categoria'";
             $rc = @mysql_query($sql_cat,$link) or die ("Errore query database: ".mysql_error());
             if(@mysql_num_rows($rc)>0)
                                       {
                                        while($row = @mysql_fetch_array($rc))
                                                   {
                                                     $id_strutture = ($row['id_strutture']);
                                                     $cat = ($row['categoria']);

            $sql_strutture = "  SELECT t1.id, t1.img, t1.denominazione, t1.indirizzo, t1.cap, t1.telefono, t1.fax,
				t1.email, t1.sito, t2.comune, t3.provincia, t3.sigla
				FROM struttureric AS t1
				INNER JOIN comuni AS t2 ON t1.id_comune = t2.id
				INNER JOIN province AS t3 ON t1.id_provincia = t3.id
                                WHERE t1.id = '$id_strutture'
				ORDER BY denominazione";
				$rs = @mysql_query($sql_strutture,$link) or die ("Errore query database: ".mysql_error());
                                if(mysql_num_rows($rs)>0)
                                                         {
                                                           while($row = @mysql_fetch_array($rs))
                          					{ $id = ($row['id']);
                                                                  $denominazione = stripslashes(ucwords($row['denominazione']));
                          					  $indirizzo     = stripslashes($row['indirizzo']);
                          					  $cap		 = stripslashes($row['cap']);
                          					  $citta	 = stripslashes($row['comune']);
                          					  $provincia	 = stripslashes($row['provincia']);
                          					  $siglaprov	 = stripslashes($row['sigla']);
                          					  $tel		 = stripslashes($row['telefono']);
                          					  $fax		 = stripslashes($row['fax']);
                          					  $mail          = stripslashes($row['email']);
                          					  $sito          = stripslashes($row['sito']);
                          					  $img		 = stripslashes($row['img']);                                                         
                                       echo ("<img src=imgstr/$img alt=$denominazione> <br />
				        <strong>$denominazione</strong><br />
					$indirizzo <br />
					$cap - $citta ($siglaprov) <br />
					<br />
					<strong>tel.:</strong> $tel <br />
					<strong>fax.:</strong> $fax <br />
					$sito - $mail <br />
					<br />
                                        <a href='pagine.php?pag=struttura_scheda&id=$id&denominazione=$denominazione'>Maggiori Informazioni</a>
                                        <hr>
                                        ");
                                                             }}}}}?>
In questo modo, però maggiori info è stampato per ogni struttura.
Credo che bisogna integrare con
$info_strutture = "SELECT * FROM info_strutture WHERE id_strutture = $id" e stabilire la condizione che se ottengo un risultato allora stampo "maggiori info" altrimenti non viene stampato.
Ho provato in vari modi, ma non riesco ad ottenere il risultato sperato. Se qualcuno può darmi una mano. Grazie
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
data l'ora tarda non so se ho capito bene il tuo problema, ma così di primo acchito la seguente soluzione mi sembrerebbe andare bene
PHP:
<?php
//...
$info_strutture = "SELECT * FROM info_strutture WHERE id_strutture = $id";
$result=mysql_query($info_strutture);
//verifichi che esistano ulteriori info
$esistono_info=mysql_num_rows($result);
if($esistono_info > 0){//se == 1 esistono
	//stampi il link
}//se == 0 il link non viene stampato
//....
?>
 

mediasteno

Utente Attivo
25 Gen 2010
120
0
0
ottengo sempre lo stesso problema. A questo punto penso che non sia tanto il problema del codice ma come è impostato. Mi spiego, ho migliorato il codice (eseguivo due Select quando potevo benissimo farne solo una) ed aggiunto il codice suggerito da borgo italia (che tra l'altro era simile a quello che avevo provato a fare io prima di scrivere sul forum). Ma quando vado ad eseguire il codice, mi stampa "maggiori info" solo quando nella tabella info_strutture ci sono altre informazioni relative alla struttura ma il problema è che i dati di una stessa struttura vengono stampati più di una volta all'infinito.
Il codice l'ho impostato in questo modo:
PHP:
<?php
if (isset($_GET['categoria'])) //recupero la categoria selezionata
   {
      $categoria = ($_GET['categoria']);
                 //seleziono tutte le strutture ricettive che appartengono a quella categoria
      $sql_strutture = "  SELECT t1.id, t1.img, t1.denominazione, t1.indirizzo, t1.cap, t1.telefono, t1.fax,
				 t1.email, t1.sito, t2.comune, t3.provincia, t3.sigla
				 FROM struttureric AS t1
				 LEFT JOIN comuni AS t2 ON t1.id_comune = t2.id
				 LEFT JOIN province AS t3 ON t1.id_provincia = t3.id
				 LEFT JOIN categorie_strutture AS t4 ON t1.id = t4.id_strutture
                                 WHERE t4.categoria = '$categoria'
				 ORDER BY denominazione";
				 
		$rs = @mysql_query($sql_strutture,$link) or die ("Errore query database: ".mysql_error());
                if(mysql_num_rows($rs)>0)
                             {
                                 while($row = @mysql_fetch_array($rs))
                          		{$id = ($row['id']);
                                          $denominazione = stripslashes(ucwords($row['denominazione']));
  					  $indirizzo     = stripslashes($row['indirizzo']);
  					  $cap		 = stripslashes($row['cap']);
  					  $citta	 = stripslashes($row['comune']);
  					  $provincia	 = stripslashes($row['provincia']);
  					  $siglaprov	 = stripslashes($row['sigla']);
  					  $tel		 = stripslashes($row['telefono']);
  					  $fax		 = stripslashes($row['fax']);
  					  $mail          = stripslashes($row['email']);
  					  $sito          = stripslashes($row['sito']);
  					  $img		 = stripslashes($row['img']);
                                          $id_strutture = ($row['id_strutture']);
                                          $cat          = ($row['categoria']);
                                 echo ("<img src=imgstr/$img alt=$denominazione> <br />
				        <strong>$denominazione</strong><br />
					$indirizzo <br />
					$cap - $citta ($siglaprov) <br />
					<br />
					<strong>tel.:</strong> $tel <br />
					<strong>fax.:</strong> $fax <br />
					$sito - $mail <br />
					<br />");
     		                        }
                               }
                        $info_strutture = "SELECT * FROM info_strutture WHERE id_strutture = $id";
                        $result=mysql_query($info_strutture);
			//verifico che esistano ulteriori info	relative alla struttura ricettiva e in caso affermativo stampo maggiori info
			$esistono_info=mysql_num_rows($result);
                        if($esistono_info > 0) {echo ("<a href='pagine.php?pag=struttura_scheda&id=$id&denominazione=$denominazione'>Maggiori Informazioni</a><br /><hr>");}
   }
?>

Come devo modificare il codice per fare in modo che i dati della struttura vengono stampati una sola volta? Può dipendere da come è impostato il database?
Grazie :confused:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
non credo proprio che dipenda dal db.
prova ad impostarli in questo modo

PHP:
<?php
if (isset($_GET['categoria'])){ //recupero la categoria selezionata
	$categoria = ($_GET['categoria']);
	//seleziono tutte le strutture ricettive che appartengono a quella categoria
	//......
	$rs = @mysql_query($sql_strutture,$link) or die ("Errore query database: ".mysql_error());
	if(mysql_num_rows($rs)>0){
		while($row = @mysql_fetch_array($rs)){
			$id = ($row['id']);
        	//....
			//....
			$info_strutture = "SELECT * FROM info_strutture WHERE id_strutture = $id";
			$result=mysql_query($info_strutture);
			//verifico che esistano ulteriori info relative alla struttura ricettiva e in caso affermativo stampo maggiori info
			$esistono_info=mysql_num_rows($result);
			if($esistono_info > 0) {
				echo ("<a href='pagine.php?pag=struttura_scheda&id=$id&denominazione=$denominazione'>Maggiori Informazioni</a><br /><hr>");
			}//fine secondo esistono
		}//fine while
	}//fine primo esistono
}//fine if get
?>

guarda che dove ho messo //... vuol dire che (mi sembra) vada bene quello che hai fatto tu
 

mediasteno

Utente Attivo
25 Gen 2010
120
0
0
Risolto!!! :fonzie: Il problema non era esattamente nel codice della pagina delle strutture. Utilizzavo $result per due SELECT diverse e probabilmente si creava una sorta di conflitto che mi portava ad un'estrazione ciclica dei risultati.
Grazie dell'aiuto, senza un confronto, avrei continuato a scervellarmi :hammer: sul codice della pagina!!!
 
Discussioni simili
Autore Titolo Forum Risposte Data
I stampare una stringa echo PHP 2
K Cambiare font size su echo stringa variabile PHP 24
Cosina Reindirizzare a nuova pagina dopo echo copy PHP 4
M [PHP] Istruzione "echo" all'interno di codice html PHP 2
A php echo get con variabili PHP 4
Cosina [PHP] echo meta PHP 18
ANDREA20 [PHP] Echo login PHP 2
H problema input e echo più linee di una tabella mysql PHP 13
elpirata Stampare a video in echo table il risultato di una query PHP 4
L echo - andar a capo nel codice html generato dal server PHP 3
I Problema con echo PHP 6
P help variabile js concatenata a echo php Javascript 0
C Echo variabile prima di valorizzazione PHP 2
N Cancellazione Immagine Utente e Echo conferma cancellazione PHP 2
S Incorporare codice java in echo php PHP 4
D echo "Salve"; Presentati al Forum 2
valient13 Errore nel echo PHP 2
S problema doppi inviiiiiiii con <?php echo $_SERVER['PHP_SELF']; ?> PHP 5
M tabelle con i css e nn tramite echo"<table border='1'> HTML e CSS 1
S aiuto echo href PHP 2
Z Nome tabella dentro ECHO con UNION PHP 1
I Cambiare colore caratteri in echo PHP 1
X echo() - concatenazione e parametri multipli [?] PHP 9
L echo e <img src PHP 10
G echo valori nulli PHP 3
G echo primo record fetch_assoc PHP 2
borgo italia echo PHP 7
chika chan echo img PHP 6
Linchiamoci form, problemi con echo & include PHP 5
spaceboy help tag echo PHP 1
M pulsante per aprire una maschera che contiene controllo schede MS Access 0
C Hosting che supportano websocker ed event scheduler Domini 0
K Form che manda dati doppi PHP 1
D rotella di caricamento che si toglie quando parte il download Ajax 0
M Vendo il mio sito web teknosurfng.com, che trasmette nel campo della tecnologia Compravendita siti e domini 0
Shyson Regex che trova la parola nella pagina jQuery 6
alankanz Count che ricomincia ogni anno PHP 2
AkTaRuS DIsabilitare il tasto destro tranne che per code e pre Javascript 1
R Recupero di permalink di un sito che è stato eliminato per errore WordPress 5
Ricky80 Fiore che sboccia Javascript 0
R jquery che cambia css di un elemento non mi funziona sulla pagina caricata da ajax Ajax 5
G notifiche dekstop/mobile ogni volta che record è inserito/eliminato/aggiornato PHP 0
P Pagina modifica record che non funziona PHP 0
S In che linguaggio è scritto il DTD? XML 2
Shyson Wordpress conta più messaggi di quelli che ci sono WordPress 1
Stex1967 Salvare una immagine che si trova su porta TCP 8080 di altro sito PHP 7
G Finestra di dialogo che non si apre - programma NUENDO Windows e Software 0
voldemort Cos'è una SCRL? Che tipo di società è?? Leggi, Normative e Fisco 1
Shyson Codice che trova item casuali PHP 1
S Testo scrolla su immagine che cambia HTML e CSS 0

Discussioni simili