// keeps getting the next row until there are no more to get while($row = mysql_fetch_array( $result )) { // Print out the contents of each row into a table echo "<tr><td>"; echo $row['username']; echo "</td><td>"; echo $row['user_data']; echo "</td></tr>"; }
echo "</table>"; ?>
Mit problem er at dataen i kolonnen "user_data" indeholder en del forskellige data, og nogle gange er den helt tom.
<?php // Make a MySQL Connection mysql_connect("db", "brugernavn", "pass") or die(mysql_error()); mysql_select_db("db") or die(mysql_error());
// Get all the data from the "users" table $result = mysql_query("SELECT * FROM users") or die(mysql_error()); echo "<table border='1'>"; echo "<tr> <th>Brugernavn</th> <th>Navn</th> <th>Postnr.</th> <th>Husnr.</th> </tr>";
// keeps getting the next row until there are no more to get while($row = mysql_fetch_array( $result )) { // Print out the contents of each row into a table echo "<tr><td>"; echo $row['username']; echo "</td><td>"; if ( !empty( $row['user_data'] ) ) { $ud = unserialize( $row['user_data'] ); foreach( $ud as $key => $val ) { echo "<td>$val</td>"; } } else { echo "<td> </td><td> </td><td> </td>" } echo "</td></tr>"; } echo "</table>"; ?>
Det er ikke helt skævt, bort set fra der ikke står noget i kolonne Navn og navnene står under post nr. Yderligere ser det ud til der bliver taget flere informationer ud end "navn", "post_nr" og "hus_nr"
Kunne man på en eller anden måde få fange ordet f.eks. "navn" og derefter tage det første ord der kommer efter "navn" og som er omgivet af "" og benytte det som værdien. Og således gøre det samme med post nr og hus nr ?
<?php // Make a MySQL Connection mysql_connect("db", "brugernavn", "pass") or die(mysql_error()); mysql_select_db("db") or die(mysql_error());
// Get all the data from the "users" table $result = mysql_query("SELECT * FROM users") or die(mysql_error()); echo "<table border='1'>"; echo "<tr> <th>Brugernavn</th> <th>Data</th> </tr>";
// keeps getting the next row until there are no more to get while($row = mysql_fetch_array( $result )) { // Print out the contents of each row into a table echo "<tr><td>"; echo $row['username']; echo "</td><td>"; if ( !empty( $row['user_data'] ) ) { $ud = unserialize( $row['user_data'] ); foreach( $ud as $key => $val ) { echo "$key: $val<br>"; } } else { echo " " } echo "</td></tr>"; } echo "</table>"; ?>
Jo tak jeg ved godt hvad du mener med at sort og hvidliste! Men ved at hvidliste, kan jeg så gøre det uden at skrive f.eks. Mads Hansen og alle andre mulige navne?
Dvs. kan jeg nøjes at hvid liste ordet "navn", "post_nr" og "hus_nr" for at hvidliste alle mulige navne/tal der kan komme til at stå i disse udtryk. Og kan du som sagt give et eksempel på hvorledes dette gøres?
En anden ting, når jeg benytter scriptet kommer user_data på denne form:
name: Mads Hansen post_nr: 7000 hus_nr: 51
Hvilket jo ikke er så pænt, kunne man omskrive det så der står:
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.