WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 24.10.2003, 16:35   #1
reichr
Veteran
 
Registriert seit: 31.12.2002
Beiträge: 390


reichr eine Nachricht über ICQ schicken
Standard PHP Abfrage Problem! (if)

hy leute! folgende function:


PHP-Code:
 function news_connect()

        {

        
$result mysql_query("SELECT * FROM news_flash ORDER BY zeit DESC");





          if (
$num mysql_num_rows($result)) {

          
// Ausgabe der Datensätze, wenn vorhanden

          
for($i=0;$i $num$i++) {

          
$id mysql_result($result,$i,"nr");

          
$news_flash mysql_result($result,$i,"news_flash");

          
$news mysql_result($result,$i,"news");

          
$news_preview mysql_result($result,$i,"news_preview");

          echo (
"[b]<font color=000000>-</font> <a href=\"./news_view.php?site=news&nr=$id\">$news_flash</a>[/b]
"
);
          echo (
"$news_preview


"
);

 if (!
is_null($news)) {
echo (
"<a href=\"./news_view.php?site=news&nr=$id\"> --- weiter --- </a>


"
);
}



          }

          }

          } 
mein problem ist das der link "---weiter---" bei jedem datensatz angezeigt wird obwohl in der spalte "news" nicht immer was drinnen steht?? was kann das problem sein?

also .. 6 datensätze... in 2 steht in der spalte "news" was drinnen und in den restlichen 4 steht in "news" nicht (is null).... !?

aber warum wird mir der ---weiter--- link überall angezeigt???


bitte um eure hilfe!
____________________________________
lg


Chris
reichr ist offline   Mit Zitat antworten
Alt 24.10.2003, 17:01   #2
käptn
Inventar
 
Registriert seit: 04.11.2001
Alter: 45
Beiträge: 2.150


Standard

Du machst

PHP-Code:
if(!is_null($news)) 
was aber

PHP-Code:
if(!empty($news)) 
sein sollte.

~
____________________________________
LOL - Mein erstes Post im Programmier Forum

MACINTOSH - Most Applications Crash, If Not The Operating System Hangs
käptn ist offline   Mit Zitat antworten
Alt 24.10.2003, 22:07   #3
reichr
Veteran
 
Registriert seit: 31.12.2002
Beiträge: 390


reichr eine Nachricht über ICQ schicken
Standard ...

tja..
dankeschön ;-)

mit empty funktionierts, wie dass?
____________________________________
lg


Chris
reichr ist offline   Mit Zitat antworten
Alt 25.10.2003, 09:49   #4
moorhahn
Veteran
 
Registriert seit: 26.12.2000
Beiträge: 489


moorhahn eine Nachricht über ICQ schicken
Standard

naja, bin ned sicher, aber in DBs is es normalerweise so, dass jedes feld eines datensatzes einen wert haben muss, also nicht "null" sein darf. zumindest motzt ein MS-PWS wenn man mit einer asp-seite versucht, einen datensatz in einer DB zu erstellen, und man dabei einem der felder keinen wert zuweist, und es auch keinen standardwert hat. im falle einer zeichenkette enthält das feld dann halt einen leerstring, also "". damit ist es nicht mehr null, aber "empty", also "leer", wie der anglist unschwer erkennt . bitte um korrektur falls das ein blödsinn ist.
____________________________________
Wenn Null ganz besonders gross ist, ist es schon fast so viel wie ein kleines bisschen Eins... - (Kommentar zum Thema Rundungsfehler bei Fliesskommazahlen).
moorhahn ist offline   Mit Zitat antworten
Alt 25.10.2003, 13:33   #5
brigh
Senior Member
 
Registriert seit: 09.07.2001
Alter: 54
Beiträge: 169


brigh eine Nachricht über ICQ schicken
Standard

Zitat:
Original geschrieben von moorhahn
naja, bin ned sicher, aber in DBs is es normalerweise so, dass jedes feld eines datensatzes einen wert haben muss, also nicht "null" sein darf. zumindest motzt ein MS-PWS wenn man mit einer asp-seite versucht, einen datensatz in einer DB zu erstellen, und man dabei einem der felder keinen wert zuweist, und es auch keinen standardwert hat. im falle einer zeichenkette enthält das feld dann halt einen leerstring, also "". damit ist es nicht mehr null, aber "empty", also "leer", wie der anglist unschwer erkennt . bitte um korrektur falls das ein blödsinn ist.
Ist kein Blödsinn - in Hex sind blank und Null einfach unterschiedliche Werte.Nur für uns sehen sie auf den ersten Blick gleich aus.

Gruß
brigh
____________________________________
Der Hund denkt:\"Sie lieben mich, sie füttern mich, sie kümmern sich um mich. Sie müssen Götter sein!\"
Die Katze denkt:\"Sie lieben mich, sie füttern mich, sie kümmern sich um mich. Ich muss ein Gott sein!\"
Jabber-ID: hexe@cargal.org
brigh ist offline   Mit Zitat antworten
Alt 25.10.2003, 13:52   #6
wbendl
Master
 
Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550


Standard

Hi!

Ob ein Feld Null enhalten darf, ist in der Definition der Tabelle festgelegt. Ebenso ist festgelegt,ob "" (also ein leerer String), ein zulässiger Feldinhalt ist.

mfg

WB
wbendl ist offline   Mit Zitat antworten
Alt 25.11.2003, 11:00   #7
reichr
Veteran
 
Registriert seit: 31.12.2002
Beiträge: 390


reichr eine Nachricht über ICQ schicken
Standard ...

hy leute! nochmal ne frage zum thema...

wie sollte jetzt die abfrage lauten wenn keine daten in diesem feld stehn...?
____________________________________
lg


Chris
reichr ist offline   Mit Zitat antworten
Alt 25.11.2003, 13:46   #8
kikakater
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.631


Standard

Eine Variable wird als NULL interpretiert, wenn

*

ihr die Konstannte NULL als Wert zugewiesen wurde,
*

ihr bis jetzt kein Wert zugewiesen wurde,
*

sie mit unset() gelöscht wurde.

Laut Php.At Link

NULL bedeutet 0 für numerische Felder
und "" (Leerstring) bzw. NULL Wert für alphanumerische Felder

NULL heißt soviel wie undefiniert oder nicht angegeben oder nicht bekannt, kein wie immer gearteter typisierter Zugriff möglich.
kikakater ist offline   Mit Zitat antworten
Alt 25.11.2003, 13:56   #9
kikakater
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.631


Standard

Schreib ein echo von $news mit >> << umschlossen raus. Dann weißt Du mehr als jetzt.
kikakater ist offline   Mit Zitat antworten
Alt 25.11.2003, 14:13   #10
kikakater
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.631


Standard

Mit Verlaub: So ungeschickt wie Du es machst, programmiert man einfach nicht. Das ist der pure Resourcen Wahnsinn, was Du aufführst.

Code:
 $result = mysql_query($sql, $db);
 $d = mysql_fetch_object($result);

 echo $d->feldname;

 bzw.

 if(!is_null($d->feldname))
 {
   echo ...
 }
mfg Kikakater

P.S.: Ich habe es extra bei mir noch einmal explizit mit is_null ausprobiert und ich kann Dir bestätigen, daß NULL Werte der entsprechenden feldnamen Objektmembervariablen erkannt werden.
kikakater ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:33 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag