PHP Neuling, kenn mi nix aus --> sicher einfach zu lösen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Ronnie

PHP Neuling, kenn mi nix aus --> sicher einfach zu lösen

Beitrag von Ronnie »

Hi Leute,

ich beschäftige mich sozusagen jetzt seit 2 Tagen mit PHP und dafür hab ich eigentlich schon einiges geschafft.

Nun bin ich aber auf folgendes Problem gestossen:

Ich lese aus einer Datenbank (Access) verschiedene Felder aus (Kommentare) und setze diese in Tables,... was auch ganz gut funktioniert.

Das Ganze ist so eine Art Bilddatenbank.

Das heißt, manchmal gibt es 5 Bilder, manchmal 3, manchmal (maximal) 10 Bilder und entsprechend viel Kommentare dazu.

Es funktioniert auch alles richtig toll, nur jetzt kommt die Frage:

Wenn ein Datensatz (Beitrag) z.B. nur 5 Bilder und 5 Kommentare hat, dann will ich natürlich im Table auch nur 5 anzeigen und nicht das Maximum von 10 (und 5 bleiben davon leer)!

Es gibt sicherlich irgendeine Möglichkeit, wie ich prüfen kann, daß in der jeweiligen Tabelle noch Werte stehen, und wenn nicht, daß der ganze Prozeß beendet wird ?? Eventuell mit Javascript (aber da kenn ich mich noch weniger aus *gg*)

Vielleicht kann mir ja jemand helfen ?

Am besten per Email: day_walker@chello.at

Danke + liebe Grüße aus Wien
Ronnie :roll:
Benutzeravatar
Steffen
Mitglied
Beiträge: 42
Registriert: 22.12.2001 01:00
Wohnort: Jena
Kontaktdaten:

Beitrag von Steffen »

Vielleicht irgendwas in der Richtung:

Code: Alles auswählen

...

if($anfrage = @mysql_query($sql))
{
  echo "<table>";

  while($spalte = @mysql_fetch_array($anfrage))
  {
    echo "<tr>";

    $max = 10;

    for($i = 0; $i < count($spalte); $i++)
    {
      echo "<td>" . $spalte[$i] . "</td>";

      max--;
    }

    for($i = 0; $i < $max; $i++) echo "<td>&nbsp;</td>";

    echo "</tr>";
  }

  echo "</table>";
}
Es wird bei jedem Datensatz mitgezählt, wieviele Tabellenspalten leer bleiben müssen. Diese werden dann in der 2. FOR-Schleife mit leeren Zellen geschrieben.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: PHP Neuling, kenn mi nix aus --> sicher einfach zu lö

Beitrag von Pyramide »

Ronnie hat geschrieben:Es gibt sicherlich irgendeine Möglichkeit, wie ich prüfen kann, daß in der jeweiligen Tabelle noch Werte stehen, und wenn nicht, daß der ganze Prozeß beendet wird ??
Ja, die Funktion odbc_fetch_row gibt false zurück, wenn keine weiteren Datensätze verfügbar sind.
Kommentar zur Funktion odbc_fetch_row im PHP-Handbuch hat geschrieben:see following i.e:

Code: Alles auswählen

$cx=odbc_connect('ww'); 
$cur=odbc_exec($cx,"select id,pass from table_name"); 
while(odbc_fetch_row($cur)){ 
$id=odbc_result($cur,1); 
$pass=odbc_result($cur,2); 
echo "id:$id,pass:$pass"; 
}
Die while-Schleife von der 3. bis zur letzten Zeile ist was du suchst.

Ronnie hat geschrieben:Eventuell mit Javascript (aber da kenn ich mich noch weniger aus *gg*)
Javascript bringt hier gar nichts, da es erst vom Browser ausgeführt wird, nachdem die PHP-Ausführung auf dem Server beendet und die Seite geschickt worden ist.
Benutzeravatar
Steffen
Mitglied
Beiträge: 42
Registriert: 22.12.2001 01:00
Wohnort: Jena
Kontaktdaten:

Beitrag von Steffen »

Oh sorry, hab total überlesen, daß es mal nicht um 'ne MySQL-Datenbank geht.
Ronnie

geht leider auch nicht

Beitrag von Ronnie »

Hi Leute,
danke für die raschen Antworten, geht aber leider auch nicht.

Hier mal das Script, daß ich jetzt verwende und das auch funktioniert, bis auf die Tatsache, daß es eben auch 10 Td aufbmacht, auch wenn nur z.B. 4 Bilder und 4 Kommentare in der DB sind.

Wahrscheinlich ist es ja nur eine Kleinigkeit die ich ändern muß ??

Code: Alles auswählen

<?	$Quelle = odbc_connect("$VWM", "$User", "$Pw"); 
	$Ergebnis = odbc_exec($Quelle, "SELECT Kom1, Kom2, Kom3, Kom4, Kom5, Kom6, Kom7, Kom8, Kom8, Kom9, Kom10 FROM VWM WHERE KatId ='KatId2'");
	$Spaltenzahl = odbc_num_fields($Ergebnis);

	echo "<div align='center'><table border='0'><width='800'><height='1000'><cellspacing='5'><tr>";


$n = 1; 
while ($n <=1 and odbc_fetch_row($Ergebnis, $n++))  {
	echo "<tr>";
	$i = 1; 
	$h = 1;
	while ($i <= $Spaltenzahl) {
	echo "<td width='200' height='60' bgcolor='#0099CC'><center><font color='#FFFFFF'><b>";
	echo odbc_result($Ergebnis, $i);
	echo "</center></font></b></td>";
	echo "<td width='200' height='60' bgcolor='#0099CC'><center><font color='#FFFFFF'><b>";
	echo "<img src='Bild$h.jpg')>";
	echo "</center></font></b></td></tr>";
	$i++;
	$h++;
	}	
	}

	echo "</table>"; 


?>
Danke im voraus für Eure Mühe und liebe Grüße aus Wien
Ronnie
Benutzeravatar
Mungo
Administrator
Administrator
Beiträge: 6613
Registriert: 03.05.2003 19:34

Beitrag von Mungo »

ich würd des so machen

Code: Alles auswählen

$n =1;
while(list($var1,$var2) = odbc_fetch_row($result)) {
if($x = count($result)) {
 echo "<td>bla</td>";
 </tr>
} else {
 echo "<td>bla</td>";
}
$x++;
}
mußt halt anpassen...weiß auch net ob es funktzt....
Antworten

Zurück zu „Coding & Technik“