[Risolto] Php, mysql_fetch_array e tabelle html

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
Avatar utente
Telefo
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1369
Iscrizione: sabato 28 ottobre 2006, 12:27
Desktop: Gnome 3
Distribuzione: Ubuntu Gnome 16.04
Sesso: Maschile

[Risolto] Php, mysql_fetch_array e tabelle html

Messaggio da Telefo »

Ciao a tutti, e scusatemi in anticipo se dirò castronerie, sono nuovo/fai da te al php. Espongo la cosa:
Ho un database che contiene link a delle miei immagini, per essere precisi ogni immagine ha 2 link: la thumbnails e l'immagine vera e propria.
Ho creato una pagina php che mi mostra una tabella con le thumb e ogni thumb linka ad un'altra pagina in php che mostra l'immagine. Tutto funziona come voglio. Questo grazie ad un ciclo while e alla funzione mysql_fetch array. Badate che sono così niubbo che conosco pochissime funzioni!
Ecco l'esempio del codice:

Codice: Seleziona tutto

<?php
	$query="select ID, nome, link, thlink from immagini";
	$result=mysql_query($query);
	while($row=mysql_fetch_array($result)){
   $ID=$row[ID];
	$link=$row[link];
   $thlink=$row[thlink];
   echo "<table><tr></tr><td><a href=\"view_img.php?ID=$ID\"><img src=\"$thlink\"></a></td></tr></table>";
  } 
?>

Questo fa sì però che ad ogni riga della tabella creata io abbia una thumb. Ma se io volessi 4 thumb in una riga, cioè 4 celle per ogni riga con una thumb per cella?
Ultima modifica di Telefo il venerdì 8 giugno 2007, 12:06, modificato 1 volta in totale.
Forsan et haec olim meminisse iuvabit...
prampa
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 652
Iscrizione: lunedì 26 febbraio 2007, 14:04

Re: Php, mysql_fetch_array e tabelle html

Messaggio da prampa »

puoi convertire l'array in una matrice (riga, colonna) e poi per ogni riga creare i per ogni colonna presente, oppure puoi provare anche con un doppio loop all'interno del primo, nel senso che il primo va da 1 fino alla fine delle occorrenze, nel secondo vai dall'elemento i+1 per altre 3 volte e poi ritorni nel loop principale. Pero' riconosco che è piu' brutta come soluzione......
La prima è migliore. Con le occorrenza del primo cursore, ti crei un nuovo array bidimensionale con 4 colonne: se ti piace come soluzione ti posso postare un esempio.
ciao
Ultima modifica di prampa il martedì 5 giugno 2007, 18:38, modificato 1 volta in totale.
Avatar utente
Telefo
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1369
Iscrizione: sabato 28 ottobre 2006, 12:27
Desktop: Gnome 3
Distribuzione: Ubuntu Gnome 16.04
Sesso: Maschile

Re: Php, mysql_fetch_array e tabelle html

Messaggio da Telefo »

Grazie, gradirei l'esempio se puoi!
Forsan et haec olim meminisse iuvabit...
prampa
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 652
Iscrizione: lunedì 26 febbraio 2007, 14:04

Re: Php, mysql_fetch_array e tabelle html

Messaggio da prampa »

questo esempio è semplice pero' funziona, anceh se stilisticamente non corretto

Codice: Seleziona tutto

<?php
$arrayColumn = array();
$i=1;
while ($i<41) {
  $arrayColumn[]=array("A"=>$i, "B"=>$i+1, "C"=>$i+2, "D"=>$i+3);
  $i=$i+4;
}
$i=0;
while ($i<10) {
echo "\n";
echo $arrayColumn[$i]["A"];
echo $arrayColumn[$i]["B"];
echo $arrayColumn[$i]["C"];
echo $arrayColumn[$i]["D"];
  $i=$i+1;
}
echo "\n";
?>
Se lo salvi in un file e lo esegui da linea di comando vedrai il risultato a video (sempre che tu abbia installato il php-client, altrimenti lo devi provare da apache), visualizza i primi 40 numeri interi su 4 colonne.
Da per scontato che il numero di colonne siano 4 (A,B,C,D che potrai sostituire con quello che vuoi) e non gestisce la possibilità che il numero di occorrenze non sia un multiplo di 4 (nell'esempio è forzato a 40, ma non e' difficile renderlo generico).....Quindi il tuo array con il resultset lo ciclerai fino al termine delle occorrenze sosituendo al valore delle colonne ($i, $i+1......) il valore recuperato da db (il tag html ).
ciao fammi sapere che altrimenti combiniamo in altro modo.
Ultima modifica di prampa il mercoledì 6 giugno 2007, 0:24, modificato 1 volta in totale.
Avatar utente
Telefo
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1369
Iscrizione: sabato 28 ottobre 2006, 12:27
Desktop: Gnome 3
Distribuzione: Ubuntu Gnome 16.04
Sesso: Maschile

Re: Php, mysql_fetch_array e tabelle html

Messaggio da Telefo »

Grazie, purtroppo non sono riuscito a far andare il tuo esempio, ma per miei limiti  ;D sono un umanista che si da amatorialmente all'informatica da poco tempo!
Ho cmq trovato una funzione simaptica: mysql_num_rows() che restituisce il numero di righe in un risultato! così con un ciclo for ho ovviato, ti posto il codice per una tabella a 2 colonne:

Codice: Seleziona tutto

<?php
	//imposto la query e il risultato
	$query="select ID, nome, link, thlink from immagini";
	$result=mysql_query($query);
	//calcolo le righe che conterrà la tabella con due celle per riga
	$nrighe=mysql_num_rows($result)/2;
	//comincio  il ciclo che continua fino a esaurimento righe della tabella
	for($i=0; $i<$nrighe; $i++){
	//assegno valore alla prima cella e la stampo senza chiudere la riga
	$row=mysql_fetch_array($result);
	echo "<table><tr><td><a href=\"view_img.php?ID=$row[ID]\"><img src=\"$row[thlink]\"></a></td>";
	//assegno valore alla seconda cella stampo e chiudo la riga	
	$row=mysql_fetch_array($result);
	echo "<td><a href=\"view_img.php?ID=$row[ID]\"><img src=\"$row[thlink]\"></a></td></tr></table>";
	}
?>
Forsan et haec olim meminisse iuvabit...
prampa
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 652
Iscrizione: lunedì 26 febbraio 2007, 14:04

Re: Php, mysql_fetch_array e tabelle html

Messaggio da prampa »

OK, stasera ti posto l'esempio riveduto e corretto
ciao
Avatar utente
Telefo
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1369
Iscrizione: sabato 28 ottobre 2006, 12:27
Desktop: Gnome 3
Distribuzione: Ubuntu Gnome 16.04
Sesso: Maschile

Re: Php, mysql_fetch_array e tabelle html

Messaggio da Telefo »

Non so visto che ho risolto forse devo aggiungere il tag risolto?
Aspetto anche il tuo cos' vedo soluzioni alternative
Forsan et haec olim meminisse iuvabit...
prampa
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 652
Iscrizione: lunedì 26 febbraio 2007, 14:04

Re: Php, mysql_fetch_array e tabelle html

Messaggio da prampa »

Telefo ha scritto: Non so visto che ho risolto forse devo aggiungere il tag risolto?
Aspetto anche il tuo cos' vedo soluzioni alternative

prova questo

Codice: Seleziona tutto

<?php
$cols=11;
$count=30;
$i=1;
$righe=intval($count/$cols);
$resto = $count - ($cols* $righe);
$x=0;

while ($i<=$righe) {
    $arr1[]=array(range($i,$cols+1));
    for ($j=0;$j<$cols;++$j) {
        $arr1[$i][$i][$j]=$i+$j+$x;
    }
    $x=$x+$j-1; 
    ++$i;
}

$arr1[]=array(range(1,$resto+1));
for ($j=0;$j<$resto;++$j) {
    $arr1[$i][$i][$j]=$i+$j+$x;
}

for ($i=1;$i<count($arr1);++$i) {
    for ($j=0;$j<$cols+1;++$j) {    
      echo $arr1[$i][$i][$j];
    }
    echo "\n";
}

?> 

$cols contiene il numero di colonne
$count contiene il numero di elementi

prova ad eseguirlo e vedi il risultato. Per te al posto di $arr1[$i][$i][$j]=$i+$j+$x; dovrai mettere il risultato della query indicizzato da ($i+$j+$x).
prova
Avatar utente
Telefo
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1369
Iscrizione: sabato 28 ottobre 2006, 12:27
Desktop: Gnome 3
Distribuzione: Ubuntu Gnome 16.04
Sesso: Maschile

Re: Php, mysql_fetch_array e tabelle html

Messaggio da Telefo »

Grazie! ti confesso però che trovo più immediata la prima soluzione...
Grazie di nuovo per l'aiuto!  (b2b)
Forsan et haec olim meminisse iuvabit...
prampa
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 652
Iscrizione: lunedì 26 febbraio 2007, 14:04

Re: Php, mysql_fetch_array e tabelle html

Messaggio da prampa »

Telefo ha scritto: Grazie! ti confesso però che trovo più immediata la prima soluzione...
Grazie di nuovo per l'aiuto!  (b2b)
va benissimo. Occhio pero' che con il tuo metodo il numero di colonne è fisso e se il numero di occorrenze che ti ritorna la select è dispari, ti perdi l'ultimo campo. In questo caso, o se tu decidessi di passare a tre o piu' colonne, devi sempre verificare che se il resto della divisione è zero va bene cosi', altrimenti dovrai aggiungere nella tabella html tanti pari alle oocorrenze rimaste fuori del ciclo.
ciao
Avatar utente
Telefo
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1369
Iscrizione: sabato 28 ottobre 2006, 12:27
Desktop: Gnome 3
Distribuzione: Ubuntu Gnome 16.04
Sesso: Maschile

Re: [Risolto] Php, mysql_fetch_array e tabelle html

Messaggio da Telefo »

Già... avevo notato quest'inconveniente... infatti o metto su il codice che mi hai postato o immetto le immagini nel database a gruppi multipli!
Ciao  ;)
Forsan et haec olim meminisse iuvabit...
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti