perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 28
Click for quality!




10.02.2012 / 20:12

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  PHP: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragDenkfehler!?
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

Beitragre: 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

Beitragre: 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

Beitragre: 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

Beitragre: 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

Beitragre: 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

Beitragre: 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

Beitragre: 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

BeitragDrei ?
Seitenanfang
Wieso drei Gleichheitszeichen?

sollte das nicht eigentlich == sein?

Datum: 02.11.2005-08:39

Beitragre: 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

-






-
-