Hallo

Ik ben een "beginner" in PHP/MySQL maar heb lange ervaring met Borland Delphi.
Ik heb een bizar probleem wat ik nooit had met PHP::mysql , maar nu ik wil overschakelen
naar PHP::MySQLI heb ik problemen.

Hieronder mijn code. Het probleem is dat er geen data wordt weergegeven. De record count is effectief
10 , en als ik mijn "echo" lijn die binnen in de while staat verander door simpelweg echo "Test"; dan
krijg ik effectief 10 keer "TEST" te zien ... enig idee iemand ?

<?php

$DB_NAME = '*****';
$DB_HOST = '*****';
$DB_USER = '*****';
$DB_PASS = '*****';

$mysqli = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);

if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

$query = "SELECT * FROM `MyTable` WHERE `Somefield`='Somevalue' LIMIT 10";
$result = $mysqli->query($query) or die($mysqli->error.__LINE__);

if($result->num_rows > 0) {

while($row = $result->fetch_assoc()) {
echo $row['Field1']." - ".$row['Field2'];
}
}

mysqli_close($mysqli);

?>
Zet eens op de plaats van je echo een 'print_r( $row );'. Dit is alleen om te testen, maar dan kan je in elk geval zien wat de kolommen zijn die je terugkrijgt.
Dag Erwin

Net gedaan, ik krijg netjes alle data te zien van de velden die ik gekozen heb in de vorm van een object (zoals print_r altijd weergeeft).

Bijvoorbeeld dus :

Array ( [ID] => 16 [CUSTID] => 7765402874762 [ACTION] => UNSUB }

[size=xsmall]Toevoeging op 22/04/2013 09:41:45:[/size]

Ik heb mijn eigen fout al ontdekt ... blijkbaar mag de veldnaam niet tussen quotes staan ...

dus :

$row['veld1']; => fout
$row[veld1]; => correct
Nee, dat laatste wat je zegt klopt niet.
Dat klopt ALLEEN als je dit zou doen:
<?php
echo "$row['veld1']"; //werkt niet
echo "$row[veld1]"; //werkt wel

echo $row['veld1']; //werkt wel
echo $row[veld1]; //werkt, maar wel met een warning, in principe fout
?>
Als je een array element binnen dubbele quotes zet zal je de enkele quotes rond de key weg moeten laten. Als je het array element echter buiten quotes haalt zal je wel degelijk die enkele (of dubbele) quotes moeten gebruiken rond de key. De key is namelijk een string. Doe je het niet dan krijg je een warning.

Of je nu wel of niet variabelen binnen dubbele quotes moet laten staan daar verschillen de meningen over, ik doe er geen uitspraken meer over.
Bram Van Daale op 22/04/2013 09:37:26

$row['veld1']; => fout
$row[veld1]; => correct


Nee, dat kan niet juist zijn.
Dat moet omgekeerd zijn.

Ik zie wel een aantal interessante dingen in je code.
Kan je eens echt tonen wat je code is (dus geen 'somevalue', maar iets echt...)



Reageren