Hallo allemaal.

Ik ben net een beetje begonnen met php en loop tegen een uitdaging aan.

Ik heb gegevens in een database staan, en deze wil ik op de website tonen in 4 kollommen naast elkaar.

Tevens wil ik de oneven kollommen een bepaalde kleur geven en de even kollommen ook, hier loop ik tegen aan omdat ik niet een verschillende id kan meegeven aan de td.

mijn code zover:

<?php
include ('config.php');

$select = "SELECT * FROM `db_naam`;";       
$query = mysql_query($select);    

echo "<table border=\"0\">";    
echo "<tr>";

while ($qry = mysql_fetch_array($query)) {  

echo "<td width=\"128\"><a href=\"";echo $qry['link'];echo "\" target=\"_blanc\">;<img src=\"images/";echo $qry['logo'];echo"\" width=\"128\" border=\"0\"></a></td>";  
}

echo "</tr>";
echo "</table>";
?>
Rutgerjan Meerwijk op 16/08/2012 15:04:29

config.php
<?php
$db_config['server'] = 'localhost';
$db_config['username'] = 'user_username';
$db_config['password'] = 'Password';
$db_config['database'] = 'user_dbname';

mysql_connect($db_config['server'], $db_config['username'], $db_config['password']) or die(mysql_error()); mysql_select_db($db_config['database']) or die(mysql_error());

?>


Doe eens dit:
<?php
$con = mysqli_connect('localhost', 'user_username', 'password') or die(mysql_error()); mysqli_select_db($con, 'user_dbname') or die(mysql_error());
?>

Waarom eerst alles nodeloos in een variabele gooien?
Kan later (door een hacker oid) alleen maar misbruikt worden. En je doet er toch niets meer mee.
Ik snap niet dat veel mensen hun inloggegevens zo 'vrij' in een variabele laten staan. Terwijl dat echt niet nodig heeft (en geen enkel voordeel).
Let op dat je nu mysqli_-gebruikt, en dus overal $con bij moet zetten (kortom: alle mysql_query-dingen vervangen).

Het voordeel is dat het in een centrale configuratie kan worden geplaatst, en dat het een stuk duidelijker is dan halverwege de source, voor een beginner.

Ik zie zelf niet echt in hoe een hacker dit kan misbruiken?
Als hij ergens iets van PHP kan uitvoeren, doet hij gewoon een 'print_r($db_config)' oid.
Als het niet in een variabele staat, kan het ook niet meer opgeroepen worden.
En daarbij is het (zeker in dit geval) nutteloos kopiëren.

En aangezien je maar 1x een database-connectie maakt per request... zie ik er echt geen nut in.
Duidelijker.... ja..... een 1% duidelijker misschien.
Bedankt voor je reactie,

Ik heb dit aangepast, de errors blijven wel aanwezig.

Warning: mysqli_query() expects parameter 1 to be mysqli, string given in
Regel:
$query = mysqli_query("SELECT link, logo FROM ver-aansprakelijk", $con);

Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in
regel:
while ($res = mysql_fetch_array($query))

index.php
<?php
include ('config.php');

$query = mysql_query("SELECT link, logo FROM ver-aansprakelijk", $con);
if($query === false)
{
echo 'De query is mislukt op lijn '. __LINE__ .' in '. __FILE__ .'<br>';
}
else
{
echo '<section class="logos">';
while ($res = mysql_fetch_array($query))
{
echo '<a href="'.$res['link'].'" target="_blank"><img src="images/'.$res['logo'].'"></a>';
}
echo '</section>';
}
?>
Die foutmeldingen komen niet van deze code.

De foutmeldingen hebben het over mysqli functies; de code die je post heeft dit niet.

Is jou al niet gezegd dat je alles door mekaar haalt?

Gebruik 1 van de twee: ofwel de gewone mySQL functies, ofwel de mysqli functies.
Ja, daar zit hem in.
Of alles met mysql_query() of alles met mysqli_query().
En ik raad dat laatste aan.
Nadeel is dat je de variabele met daarin de link naar je database (iets als $con, $link. $connectie oid) erbij moet vermelden.
oke, dus als ik hem goed begrijp moet de code als volgt.


<?php
include ('config.php');

$query = mysqli_query("SELECT link, logo FROM ver-aansprakelijk", $con);
if($query === false)
{
echo 'De query is mislukt op lijn '. __LINE__ .' in '. __FILE__ .'<br>';
}
else
{
echo '<section class="logos">';
while ($res = mysql_fetch_array($query))
{
echo '<a href="'.$res['link'].'" target="_blank"><img src="images/'.$res['logo'].'"></a>';
}
echo '</section>';
}
?>

de config.php heb ik nu zo
<?php

$con = mysqli_connect('localhost', 'user', 'pass') or die(mysql_error()); mysqli_select_db($con, 'db') or die(mysql_error());

?>
Kijk hier eens naar het gebruik van mysqli:

http://php.net/manual/en/mysqli.query.php

Bij "Example #1" zie je een voorbeeld van gebruik. Je kan het objectgeoriënteerd gebruiken ofwel proceduraal. Example #1 toont beide.

Bij mysqli selecteer je de database bij de connect, niet als aparte functie.

Reageren