DB-Einträge werden nicht angezeigt

hans_schmid

Erfahrenes Mitglied
Sodala... jetz ist es mal wieder soweit, dass ich nicht mehr weiter weiß...

Hier mal mein Code:
PHP:
<?
$con = odbc_connect("briefing-workflow", "", "");
$q2="SELECT * FROM Siemens WHERE ID_Kunde = $kunde ORDER BY sie_last_name ASC";
$siemens_att = odbc_exec($con, $q2);

while(odbc_fetch_row($siemens_att)){ 
	$count_siemens++;
}

if($count_siemens){
echo "<FONT SIZE=\"+1\">Siemens Attendees</FONT>";

echo "<TABLE WIDTH=\"540\" CELLSPACING=\"0\" CELLPADDING=\"2\">";

//ab hier wird der Code nicht mehr dargestellt

while(odbc_fetch_row($siemens_att)){ 

$sie_last_name = odbc_result($siemens_att,1);
$sie_first_name = odbc_result($siemens_att,2);
$sie_title = odbc_result($siemens_att,3);
$sie_position = odbc_result($siemens_att,4);
?>
<TR>
<TD WIDTH="15%" VALIGN="TOP"><A HREF="p_update_one_cust.cfm?ID_Kunde=#ID_Kunde#&pwd=#pwd#&ID_Customer=#ID_Customer#">Update</A>
&nbsp;&nbsp;<A HREF="p_delete_one_cust.cfm?ID_Kunde=#ID_Kunde#&pwd=#pwd#&ID_Customer=#ID_Customer#">Delete</A></TD>
<TD WIDTH="30%" VALIGN="TOP"><FONT FACE="Arial"><?php echo $sie_title; ?><B><?php echo $sie_last_name; ?></B>, <?php echo $sie_first_name; ?></FONT></TD>
<TD WIDTH="70%" VALIGN="TOP"><FONT FACE="Arial"><?php echo $sie_position; ?></FONT></TD>
</TR>
<?php
}

//jetz geht's wieder

echo "</TABLE>";
}
Mein Problem ist nun, dass der while-Teil nicht ausgegeben wird.
Da ich ja anfangs schon ne kurze Abfrage der Anzahl der Datensätze mache (was auch wunderbar funkitoniert) habe ich absolut keine Ahnung, warum der Ausgabe-Teil einfach ignoriert wird... :confused:

MfG
Hans
 
Die zweite While-Schleife wird nicht durchlaufen, weil Du bereits in der ersten While-Schleife alle Zeilen bis zum Ende durchläufst. Danach kann keine weitere Zeile mehr abgeholt werden. Was spricht denn dagegen, den Inhalt der zweiten Schleife in die erste zu setzen? Du darfst dann nur nicht den HTML-Code direkt ausgeben, sondern musst Ihn erst in einer Variable zwischenspeichern und nach der Schleife ausgeben.

Eine ODBC-Funktion, die äquivalent zur MySQL-Funktion [phpf]mysql_data_seek[/phpf] ist, habe ich nicht gefunden.

snuu
 
Es gibt doch sicherlich die Möglichkeit auf die erste while zu verzichten und das mit der einfachen Abfrage zu ermöglichen, ob Einträge in der DB vorhanden sind.

Das geht bei mysql mit mysql_num_rows. Sowas sollte es doch auch für SQL geben.

Danach starte einfach eine if/else Prüfung.
PHP:
<?php

if($a = mysql_num_rows > 1) {
    // jetzt die while mit Inhalten starten

	while(odbc_fetch_row($siemens_att)) { 

		$sie_last_name = odbc_result($siemens_att,1); 
		$sie_first_name = odbc_result($siemens_att,2); 
		$sie_title = odbc_result($siemens_att,3); 
		$sie_position = odbc_result($siemens_att,4); 	
		?> 
		<TR> 
			<TD WIDTH="15%" VALIGN="TOP">
				<A HREF="p_update_one_cust.cfm?ID_Kunde=#ID_Kunde#&pwd=#pwd#&ID_Customer=#ID_Customer#">Update</A>&nbsp;&nbsp;<A HREF="p_delete_one_cust.cfm?ID_Kunde=#ID_Kunde#&pwd=#pwd#&ID_Customer=#ID_Customer#">Delete</A>
			</TD> 
			<TD WIDTH="30%" VALIGN="TOP">
				<FONT FACE="Arial"><?php echo $sie_title; ?><B><?php echo $sie_last_name; ?></B>, <?php echo $sie_first_name; ?></FONT>
			</TD> 
			<TD WIDTH="70%" VALIGN="TOP">
				<FONT FACE="Arial"><?php echo $sie_position; ?></FONT>
			</TD> 
		</TR> 
		<?php 
	} 
}
else {
 echo "Keine Einträge in der Datenbank vorhanden";
}
?>
 
Zurück