allora sono un programmatore asp che da poco si è affacciato al mondo php
oggi mentre lavoravo su un progetto mi sono trovato una situazione un po strana e non riesco a capire se sbaglio io qualcosa o realmente non si puo fare la situazione è questa
faccio una query di tutti i dati presenti nella tabella e li stampo tuttti in questo caso su 3 righe alla interno di questo ciclo un while per l'esattezza
verifico per ogni campo se sono presenti dei dati particolari riferiti a quella posizione in un altra tabella
specifico subito che all inizio avevo usato il left join per evitare il problema ma essendo che nella tabella 2 esistono + righe per la stessa posizione poi mi sballa tutto e invece che dare 30 risultati come dovrebbe ne da per esempio 31
vi faccio un esempio per spiegare meglio quello che volevo fare
Codice PHP:
<?php $result = $mysqli->query("SELECT * FROM mappa order by id_mappa asc", MYSQLI_USE_RESULT); printf("<table border = 1 ><tr>"); $n = 0; while($row = $result->fetch_row()) { if ($row['tipo'] == 0) { if ($n == 10 or $n == 20 or $n == 30) { printf('</tr><tr><td bgcolor="#00CC33">'); } else { printf(' <td bgcolor="#00CC33"> '); } printf('Nome %s
tipo: [b]capitale[/b] ', $row['nome']); } elseif ($row['tipo'] == 1) { if ($n == 10 or $n == 20 or $n == 30) { printf('</tr><tr><td bgcolor="#00CC66">'); } else { printf(' <td bgcolor="#00CC66"> '); } printf('Nome %s
tipo: confine ', $row['nome']); } elseif ($row['tipo'] == 2) { if ($n == 10 or $n == 20 or $n == 30) { printf('</tr><tr><td bgcolor="#006600">'); } else { printf(' <td bgcolor="#006600"> '); } printf('Nome %s
tipo: zona vuota ', $row['nome']); } elseif ($row['tipo'] == 3) { if ($n == 10 or $n == 20 or $n == 30) { printf('</tr><tr><td bgcolor="#0033FF">'); } else { printf(' <td bgcolor="#0033FF"> '); } printf('Nome %s
tipo: mare ', $row['nome']); }
$posizione = $row['id_mappa'] $result1 = $mysqli->query("SELECT n_unita, FROM unita where sposta = 0 and posizione = ".$posizione."", MYSQLI_USE_RESULT); while($row1 = $result1->fetch_row()) { if ($row1[0] == 0) { printf('
nessuna unita </td>'); } else { printf('
unita [url="posizione.php?id=%s"] %s [/url]</td>', $row['id_mappa'], $row1[0]); } } $n = $n+1; } $result->close(); printf('</tr></table>'); ?>
come vedete per ogni cella della tabella verifico che siano presenti dei volori in quella cella e che non siano in spostamento ma per quealche motivo la cosa non funziona sapreste aiutarmi?