Problem mit If-Schleifen bei MySQL-Ausgabe
fritz2000
- php
Hallo und Servus,
ich habe ein problem: undzwar würde ich gerne eine Schleife in einer
Schleife machen - geht das überhaupt? den code poste ich in einem neuen posting, sonst kann ich die Nachricht nicht verfassen (Zu lange Nachricht)
....
while($line = mysql_fetch_array($result))
{
if($check)
{
print "<tr>
<td>$line[projekt]</td>
<td><img src='img/p$line[priority].gif'></td>
<td><font size='2'><img src='img/$line[leiter].gif'></td>
<td>$line[deadline]</td>
<td><img src='img/info.gif'></a>
<a href='mysql_aendern.php?id=$line[id]'><img src='img/edit.gif'></a>
<a href='mysql_delete_frage.php?id=$line[id]'><img src='img/delete.gif'></a></td>
</tr>";
}
else
{
print "<tr>
<td>$line[projekt]</td>
<td><img src='img/p$line[priority].gif'></td>
<td><font size='2'><img src='img/$line[leiter].gif'></td>
<td>$line[deadline]</td>
<td><img src='img/info.gif'></a>
<a href='mysql_aendern.php?id=$line[id]'><img src='img/edit.gif'></a>
<a href='mysql_delete_frage.php?id=$line[id]'><img src='img/delete.gif'></a></td>
</tr>";
}
$check = !$check;
$lv++;
}
mysql_close($link);
...
Wie man sehen kann handelt es sich um eine Projektdatenbank. Wenn ein Projekt beendet ist, soll es die funktion geben dies kenntlich zu machen.
deswegen würde ich gerne innerhalb dieser schleife folgendes reinmachen:
if ($line[projekt_beendet] = "ja") {
echo "<strike>$line[projektname]</strike>";
}
else {
echo "$line[projektame]";
}
mit variablen habe ich es auch schon versucht und diese dann anstatt den normalen text in die mysql ausgabe bei echo rein. hat aber nicht funktioniert.
habt ihr irgendwelche lösungsvorschläge?
ciao peter g.
Halihallo fritz2000
ich habe ein problem: undzwar würde ich gerne eine Schleife in einer
Schleife machen - geht das überhaupt?
Aber sicher, aber sicher.
if ($line[projekt_beendet] = "ja") {
Himmel! - Lies
http://ch2.php.net/manual/de/language.operators.comparison.php
mit variablen habe ich es auch schon versucht und diese dann anstatt den normalen text in die mysql ausgabe bei echo rein. hat aber nicht funktioniert.
Funktioniert ist keine mir bekannte Fehlerbeschreibung.
Fehlerbeschreibungen sind jedoch erforderlich für die Hilfe.
Viele Grüsse
Philipp
Hi phillip,
*lol* schon klar - die "funktioniert nicht fehlermeldung" habe ich bisher auch nicht gesehen ;-)
aber es gibt ja keine fehlermeldung - es funktioniert einfach nicht, er zeigt mir dann keine daten aus der datenbank an.
zu der schleife - ja stimmt, hab ein = vergessen, habe ich aber im script richtig.
oder kann man die mysql-ausgabe modifizieren?
ciao fritz2000
Hi,
es gibt keine if-Schleife.
ich habe ein problem: undzwar würde ich gerne eine Schleife in einer
Schleife machen - geht das überhaupt? den code poste ich in einem neuen posting, sonst kann ich die Nachricht nicht verfassen (Zu lange Nachricht)
while($line = mysql_fetch_array($result))
{
if($check)
Wird $check vor der whileschleife auf einen definierten Wert gesetzt?
Abgesehen davon:
im if- und im else-Zweig steht identischer Code. Wozu also überhaupt die Fallunterscheidung?
{
print "<tr>
<td>$line[projekt]</td>
ist projekt als Konstante definiert? Oder willst Du hier den String "projekt" verwenden (selbiges für die anderen Indizes]?
<td><img src='img/p$line[priority].gif'></td>
img hat ein Pflicht-Attribut namens alt. Fehlt mehrfach
<td><font size='2'><img src='img/$line[leiter].gif'></td>
<a href='mysql_aendern.php?id=$line[id]'><img src='img/edit.gif'></a>
ICH würde potenzielle Angreifer so weit wie möglich über die verwendete Technik im Unklaren lassen - also nicht per URL auf das verwendete Datenbanksystem hinweisen.
Wie man sehen kann handelt es sich um eine Projektdatenbank. Wenn ein Projekt beendet ist, soll es die funktion geben dies kenntlich zu machen.
deswegen würde ich gerne innerhalb dieser schleife folgendes reinmachen:
if ($line[projekt_beendet] = "ja") {
Daß das hier eine Zuweisung statt Vergleich ist, weißt Du ja schon.
cu,
Andreas
Servus Mud,
dass bei den bilder ein alt tag rein muss weiß ich und ist auch drin, habe es hier nur nicht gepostet, damit der code nicht solange ist. danke für den hinweis ;-)
die zuweisung wurde schon mit phillip besprochen, demnach nichts neues.
wegen den dateinamen der seiten - ist wirklich besser- werde ich ändern.
hier der code vor der while-schleife:
<?php
$DB_server = "XXX";
$DB_user = "XXX";
$DB_pass = "XXX";
$DB_name = "XXX";
$link = mysql_connect($DB_Server, $DB_User, $DB_Pass)
or die ("Could not connect");
mysql_select_db ($DB_name)
or die ("Could not select database");
$query="SELECT * FROM projektdatenbank ORDER BY $orderby $sort";
$result = mysql_query ($query)
or die ("Query failed");
$check = true;
$lv=1;
vielleicht ist es so besser verständlich - wie du schon gemeint hast wegen dem identischen code - werde ich ändern.
hast du vielleicht eine idee, wie ich nun die erledigten projekte mit dem html tag <strike> durchstreichen kann, wenn diese als erledigt gekennzeichnet werden?
gruß fritz2000
Hi,
dass bei den bilder ein alt tag rein muss weiß ich und ist auch drin, habe es hier nur nicht gepostet, damit der code nicht solange ist. danke für den hinweis ;-)
Naja, es ist nur NOCH schwerer, Fehler im Original-Code zu finden, wenn stattdessen irgendein anderer Code vorliegt...
$query="SELECT * FROM projektdatenbank ORDER BY $orderby $sort";
SELECT * FROM ... ist böse. Details siehe Archiv, steht schon oft genug drin.
vielleicht ist es so besser verständlich - wie du schon gemeint hast wegen dem identischen code - werde ich ändern.
hast du vielleicht eine idee, wie ich nun die erledigten projekte mit dem html tag <strike> durchstreichen kann, wenn diese als erledigt gekennzeichnet werden?
Was spricht gegen die von Dir vorgegebene Fallunterscheidung (wenn Du einen Vergleich statt einer Zuweisung hast)?
cu,
Andreas
Servus Mud,
Naja, es ist nur NOCH schwerer, Fehler im Original-Code zu finden, wenn stattdessen irgendein anderer Code vorliegt...
stimmt schon, wie gesagt hab das nur zur übersichtlichkeit gemacht.
SELECT * FROM ... ist böse. Details siehe Archiv, steht schon oft genug drin.
alles klar schau ich mal nach.
Was spricht gegen die von Dir vorgegebene Fallunterscheidung (wenn Du einen Vergleich statt einer Zuweisung hast)?
problem ist dass es nicht funktioniert hat, vielleicht liegt es an der mysql-ausgabe if-else abfrage.
weil bei mir hat er da nichts ausgegeben, das feld war leer, und absolut keine daten wurden angezeigt - deswegen dachte ich, dass man es innerhalb der print-funktion mit einer verkettung hinkriegt - hat aber leider auch nichts genützt.
ciao fritz2000
hi,
ich habe ein problem: undzwar würde ich gerne eine Schleife in einer
Schleife machen - geht das überhaupt?
argh ... http://www.dclp-faq.de/q/q-terminologie-if.html
gruss,
wahsaga