Denkfehler!?
|
Seitenanfang |
| Servus Hab nen scribt angefertigt indem wenn in zwei Zellen der datenbank ne 1 oder 0 drin steht soll er sie durch Yes oder No ersetzen leider funktioniert das ganze nicht so wie gedacht er ersetzt es nur wenn entweder beides 0 ist oder beides 1 ansonsten gehtersetzt er die zahl in der ersten zelle die kommt und die andere gibt er einfach so aus. Also wenn jemand denn Fehler findet währe es echt genial ihn hier reinzuposten mfg eXplorer Auszug: while($zeile2=mysql_fetch_row($ergebnis2)){ print("<tr align='center'>"); for($i=0;$i<$spaltenanzahl;$i++){ print("<td>"); if(($zeile2[$i]===$zeile2[2])or($zeile2[$i]===$zeile2[5])){ if($zeile2[$i]=="1"){ print("Yes"); } else{ print("No"); } } else{ print($zeile2[$i]); }
Datum: 30.10.2005-18:11

|
re: Denkfehler!?
|
Seitenanfang |
Hi, also hioer ist nochmal Dein code, etwas lesbarer. Was ich nicht verstehe ist die Zeile
if( ($zeile2[$i] === $zeile2[2]) or ($zeile2[$i] === $zeile2[5]))
Was macht die genau und warum. Könnte es sein, dass hier der Grund zu suchen ist, warum der zweizte Wert nie ersetzt wird?
while($zeile2=mysql_fetch_row($ergebnis2)){ print("<tr align='center'>"); for($i=0;$i<$spaltenanzahl;$i++){ print("<td>"); if( ($zeile2[$i] === $zeile2[2]) or ($zeile2[$i] === $zeile2[5])){ if($zeile2[$i]=="1"){ print("Yes"); } else { print("No"); } } else { print($zeile2[$i]); } print("</td></tr>"); } }
Was bekommst Du, wenn Du an einigen Stellen ein
print '<pre>'; print_r($eine_variable); print '</pre>';
zum Debuggen reinschreibst? Gruss, svenXY
Datum: 31.10.2005-09:21

|
re: Denkfehler!?
|
Seitenanfang |
if( ($zeile2[$i] === $zeile2[2]) or ($zeile2[$i] === $zeile2[5])) Das soll überprüfen ob wir uns in der spalte 2 oder 5 des ergebnisses befinden die spalten werden mit einer for schleife durchgezähllt während die reihen ja in der while schleife durchgehen und in den beiden zellen steht entweder ne 1 oder ne 0 und die zweite zahl wierd ja nicht nie übersetzt was ich eben net ganz versteh. Sondern sie wierd nur ersetzt wenn Zahl1=Zahl2 und falls wir uns nicht in denn spalten befinden soll er eben den inhalt der zelle ausgeben was er ja auch immer tut und bei zahl2 eben wenn Zahl1<>Zahl2
Datum: 31.10.2005-09:54

|
re: Denkfehler!?
|
Seitenanfang |
| hab vergessen unten noch anzufügen: ...was er ja immer tut und bei Zahl2 eben wenn Zahl1<>Zahl2.. was der scribt ja nicht sollte sondern ebenfalls zahl2 mit yes oder no ersetzen
Datum: 31.10.2005-10:00

|
re: Denkfehler!?
|
Seitenanfang |
| Also Du überprüfst, ob Du Dich in Spalte 2 oder 5 befindest, indem Du auf identisch überprüfst? Finde ich sehr riskant. Was, wenn in mehreren Spalten das gleiche Ergebnis steht? Wie wäre es statt dessen ganz einfach mit
if ( $i == 2 or $i == 5 )
und - beginnen die Indizes nicht mit 0? Vielleicht liegt es ja auch daran.Gruss, svenXY
Datum: 31.10.2005-10:04

|
re: Denkfehler!?
|
Seitenanfang |
habs mal ausprobiert immer noch gleiches problem meine for schleife beginnt ja auch bei 0 und es ist ja nicht so das er die spalte net findet er überspringt einfach den ersten if block und geht zum else block und gibt die zahl aus. mfg eXplorer
Datum: 31.10.2005-10:19

|
re: Denkfehler!?
|
Seitenanfang |
| OK, dann lass Dir doch mal in jedem Schleifendurchlauf per print_r den Wert von $zeile2[$i] ausgeben. Irgendwo da dran muss es hängen.
Datum: 31.10.2005-10:35

|
re: Denkfehler!?
|
Seitenanfang |
| Peinlich peinlich hab jetzt grad, dank deines vorschlages, gemerkt das ich gar nicht die gesamte tabelle ausgewählt hatte und damit position 5 in wirklichkeit position 3 ist. Jetzt ist mir beinahe alles klar. Blos warum hat er die zahl ersetzt wenn zahl1==zahl2 war, wenn sie doch gar nicht in der zelle 5 war? Währe noch interressant zu Wissen? ansonsten großes Dankeschön für deine Hilfe und den Tip bei der IF Bedingung mfg eXplorer
Datum: 31.10.2005-11:19

|
Drei ?
|
Seitenanfang |
| Wieso drei Gleichheitszeichen? sollte das nicht eigentlich == sein?
Datum: 02.11.2005-08:39

|
re: Drei ? - ja, ist syntaktisch korrekt
|
Seitenanfang |
| http://www.php.net/manual/de/language.operators.comparison.php $a === $b Identisch Gibt TRUE zurück wenn $a gleich $b ist und beide vom gleichen Typ sind(nur PHP 4). Gruss, svenXY
Datum: 02.11.2005-08:45

|