PHP+MYSQL Tabelle

  • Creatore Discussione Creatore Discussione djmatto
  • Data di inizio Data di inizio

djmatto

Utente Attivo
19 Feb 2009
40
0
0
Salve a tutti,

ho un disperato bisogno del vostro aiuto.

Devo creare un database che serve a cosultare i contatti.

Sono riuscito a fare tutto tranne che a fare in modo che mi metta il titolo della lista (è a pagina unica).

Le tabelle sono 2 una che contiene tutti i dati del contatto ed una che serve ad avere il nome della lista a cui fa riferimento.

Quello che vorrei io è:

LISTA 1
contatto1
contatto2
contatto3
...

LISTA2
contatto1
contatto2
contatto3
...

Il codice è il seguente:

PHP:
<?php
/*include 'auth.inc.php';

if ($_SESSION['admin_level'] < 1) {
    header('Refresh: 5; URL=index.php');
    echo '<p><strong></strong>You are not authorized for this page.</strong></p>';
    echo '<p>You are now being redirected to the main page. If your browser ' .
        'doesn\'t redirect you automatically, <a href="main.php">click ' .
        'here</a>.</p>';
    die();
}
*/
include 'db.inc.php';

$db = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD) or 
    die ('Unable to connect. Check your connection parameters.');
mysql_select_db(MYSQL_DB, $db) or die(mysql_error($db));
?>
<html>
 <head>
  <title>contatti database</title>
  <style type="text/css">
   th { background-color: #999;}
   .odd_row { background-color: #EEE; }
   .even_row { background-color: #FFF; }
  </style>
 </head>
 <body>


 <table style="width:100%;">
  
<?php

$query = 'SELECT * FROM contatti, Lista WHERE contatti.Lista_id = Lista.Lista_id';
 
$result = mysql_query($query, $db) or die (mysql_error($db));

$odd = true;
while ($row = mysql_fetch_assoc($result)) {
	echo '<table style="width:100%;">
  	<tr>
   	<th colspan="2">'. $row['Lista'] .'<a href="contatti.php?action=add">[ADD]</a></th>
  	</tr>';  
    echo ($odd == true) ? '<tr class="odd_row">' : '<tr class="even_row">';
    $odd = !$odd; 
    echo '<td style="width:75%;">'; 
    echo $row['Nome'];
    echo '</td>';
	 echo '<td style="width:75%;">'; 
    echo $row['Lista'];
    echo '</td><td>';
    echo ' <a href="contatti.php?action=edit&id=' . $row['contatti_id'] . '"> [EDIT]</a>'; 
    echo ' <a href="delete.php?type=contatti&id=' . $row['contatti_id'] . '"> [DELETE]</a>';
    echo '</td></tr>';
}

?>
  </table>
 </body>
</html>
 
Dovrai modificare lo script per eseguire due query. Qualcosa del genere:
PHP:
<?php
$listQuery = mysql_query('SELECT * FROM liste') or die(mysql_error());
while ($listRow = mysql_fetch_assoc($listQuery)) {
    // $listRow contiene i dati della lista
    // ...
    
    $contactQuery = mysql_query('SELECT * FROM contatti WHERE lista = '. $listRow['id']) or die(mysql_error());
    while($contactRow = mysql_fetch_assoc($contactQuery)) {
        // $contactQuery contiene i dati del contatto
        // ...
    }
}
Un altro modo, se vuoi eseguire una sola query per risparmiare risorse, è di organizzare i contatti per lista internamente tramite PHP, ma è abbastanza macchinoso.
 

Discussioni simili