Dit PHP/Mysql script selecteerd X,Y,Z (Easting, Northing, depth) data uit een database, maar de eerste regel van deze mysql query where Number=$i wordt overgeslagen......als ik nu het IF ELSE statement van Check-->Exist of het $result wel bestaat, er uit gooi, geeft hij wel de eerste regel???....

de for loop van $i, waarbij $i een lokatie nummer is loopt wel van 1-->343 maar er zijn later enkele lokaties verwijderd in de Dbase vandaar dat ik dit met IF null ELSE probeerde dit aan te geven

Hoe los ik dit IF ELSE statement netjes op zodat de eerste regel van deze query wel mee wordt genomen?

voorbeeld hieronder:

<?php
include_once("config-Rev02.php");
$cid = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($db);
if (!$cid) { print "FOUT: " . mysql_error() . "\n"; }

for ($i = 0; $i < 344; ++$i) {

// Support row Selection

$result = mysql_query("SELECT * FROM ".$Support_XYZ." WHERE Number=".$i." ORDER BY KP");

// Check if result exists

if (mysql_fetch_array($result) == null) {
echo "Location OS ".$i." is not available</br>";
}
else {

// Writing Support's Easting, Northing & Depth Values at EOF

while ($row = mysql_fetch_array($result)) //set $result to $row
{
$OS = $row['Name'];
$nummer = $row['Number'];
$easting = $row['easting'];
$northing = $row["northing"];
$elevation = $row["z"];
print "<br>" . $row['Number'] . ": " . $row['easting'] . ", " . $row['northing'] . ", " . $row['z'];
}
}
Print "<br>";
}
echo "\n OS List is printed";


?>
for ($i = 1; $i < 345; ++$i) { mischien ??
Nee de for loop werkt wel goed, ik geef ff een voorbeeld:

$i loopt van 1 tot 343, deze getallen stellen een Project lokatienummer voor in de database. er zijn dus meerdere regels met het zelfde lokatie nummer, echter later hoefde een aantal Project lokaties niet meer. Deze nummers (records) zijn dus verwijderd uit de database.

de query krijgt bij mij nu pas op $i=29 een eerste $result, alleen de for loop loopt alle nummers af, en ik wil dus bij IF de nummers waar hij geen $result heeft de melding "Location OS 1 is not available" geven, en bij ELSE hij wel een $result geeft, maar hij slaat de eerste regel van dit $result dus over....terwijl als ik het IF ELSE er uit sloop het wel goed loopt...
if (mysql_fetch_array($result) == null) {

Hier wordt het eerste record opgehaald om de vergelijking te kunnen maken. Dus de pointer staat nu op record nummer twee.
Klopt .....hoe los ik dat dan op?
if ($result && mysql_num_rows($result) >= 1) {
Gebruik liever

if(mysql_num_rows($recordset) == 0)
{
... geen resultaten ...
}
else
{
... wel resultaten ...
}
explain u neder

als je query errored krijg je een leuke error in je scherm ...
Dit werkt goed hoor! Thanks......


Pholeron schreef op 10.05.2007 16:47
Gebruik liever

if(mysql_num_rows($recordset) == 0)
{
... geen resultaten ...
}
else
{
... wel resultaten ...
}

Reageren