000
02.08.2002, 15:21
chi
|
for($i=0;$i<mysql_num_rows($erg);$i++) { $ergebnis[$i]=mysql_fetch_array($erg); print $ergebnis[$i][ID]; print $ergebnis[$i][absender]; }
ich lese aus einer datenbank alle daten in ein array. nun gebe ich testweise die werte aus, der absender wird auch brav angezeigt, die ID aber nicht. warum und wie kann ich das beheben?
--
when the truth walks away everybody stays cause the truth about the world is that crime does pay
Dieser Beitrag wurde am 02.08.2002 um 15:25 von chi bearbeitet.
|
|
Profil || Suche
|
001
02.08.2002, 15:22
CN
|
erstens... leg dir mal nen anständigen stil zu ;) das heisst: das 2te print in ne neue zeile
schonmal probiert id klein zu schreiben? oder ist der feldname tatsächlich "ID" ?
/edit und warum machst dus nicht so?
<?php require("connect.php"); $query="SELECT * FROM blub"; $fetch_bla=mysql_query($query,$db); while($ergebnis=mysql_fetch_array($fetch_bla)) { print "$ergebnis[id]"."<br>"."$ergebnis[absender]"; } ?> o_O
--
Dieser Beitrag wurde am 02.08.2002 um 15:26 von campersnightmare bearbeitet.
|
|
Profil || Suche
|
002
02.08.2002, 15:24
chi
|
der name ist tatsächlich ID und das ich beide prints in einer zeile hab ist weil ichs grad reinkopiert habe, keine bange ich habe in meinem code eine neue zeile für jedes print :)
edit das kommt doch aufs gleiche raus ob ich nun ne while oder for schleife verwende
edit2 oh ich schlampe ich hab die id gar nicht selected :P
$query="SELECT absender,email,betreff,message,datum FROM $table WHERE check=1 ORDER by ID DESC";
aber um noch was aus dem thread zu machen gleich die nächste frage: ich habe ein gästebuch geproggt und der text wird in eine tabelle überwiesen, normal. aber ich habe der tabelle gesagt sie soll nur 40% breit sein. und das soll sie auch bleiben. wenn jetzt allerdings jemand sssssssssssssssssssssssssssssssssssssss eingibt dann wird die trotzdem breiter. kann man das irgendwie unterbinden?
--
when the truth walks away everybody stays cause the truth about the world is that crime does pay
Dieser Beitrag wurde am 02.08.2002 um 15:35 von chi bearbeitet.
|
|
Profil || Suche
|
003
02.08.2002, 15:45
Andy_
|
Also 1. Die while() methode ist ein bischen besser, da du hierbei die funktion mysql_num_rows nicht ausführen must, denn die frisst ja zusäztlich serverzeit.
2. kanst du durchtesten indem du durch jedes wort loopst (also alles zwischen leerzeichen), und die stringröße ausließt und neu bestimmst (ich glaub sizeof()).
--
42 Es gibt keinen Sinn des Lebens.
|
|
Profil || Suche
|
004
02.08.2002, 15:49
CN
|
$query="SELECT absender,email,betreff,message,datum FROM $table WHERE check=1 ORDER by ID DESC"; wenn das alle felder sind dann würd ich das so machen
$query="SELECT * FROM $table WHERE check=1 ORDER by ID DESC";
--
|
|
Profil || Suche
|
005
02.08.2002, 16:29
chi
|
campersnightmare postete
$query="SELECT absender,email,betreff,message,datum FROM $table WHERE check=1 ORDER by ID DESC"; wenn das alle felder sind dann würd ich das so machen
$query="SELECT * FROM $table WHERE check=1 ORDER by ID DESC";
sind aber nich alle :D
ich hab ein neues prob:
for($i=0;$i<mysql_num_rows($erg);$i++) { $ergebnis[$i]=mysql_fetch_array($erg);
if($ergebnis[$i][message]==$ergebnis[$i-1][message]){ $query="DELETE FROM $table WHERE ID=$ergebnis[$i][ID]"; mysql_query($query,$link); }
ich habe mir eine methode ausgedacht, mit der ich doppelposts vermeiden will. aber leider funzt es so nicht. er erkennt zwar wenn zwei mal das gleiche gepostet wurde, aber er löscht es nicht, obwohl ich die anfrage mit $query stelle. weiß jmd. dazu rat?
p.s. ich steig bald auf while um, im mom is mir for einfach geläufiger(bin ja noch mega nub) ;)
p.s.2
while($ergebnis=mysql_fetch_array($fetch_bla))
muss es nicht "==" heissen statt "=" ?
--
when the truth walks away everybody stays cause the truth about the world is that crime does pay
Dieser Beitrag wurde am 02.08.2002 um 16:34 von chi bearbeitet.
|
|
Profil || Suche
|
006
02.08.2002, 18:39
CN
|
nein das is ja kein vergleich es wird der variable $ergebnis (array) der wert "mysql_fetch_array($fetch_bla)" zugewiesen
--
|
|
Profil || Suche
|
007
02.08.2002, 18:53
TheTinySteini
|
Sieh es so: Während (while) der Variable $ergebnis ein Wert zugewiesen wird, der nicht Null ist, wird die Schleife ausgeführt. In diesem Fall wird so lange ein neues Array geholt, bis keins mehr da ist. Dann wird $ergebnis = NULL und die Schleife bricht ab.
--
TheTinySteini Coder Poke646 "Don't Panic" - Hitchhiker's Guide to the Galaxy
|
|
Profil || Suche
|
009
03.08.2002, 03:13
Andy_
|
Hmm, bist du sicher das du ID wieder selected hast, im ersten query? Vielleicht interpretiert PHP die Variable nicht ganz richtig, daher würd ich den Query so schreiben:$query="DELETE FROM ".$table." WHERE ID=".$ergebnis[$i]['ID']; Ansonsten macht das aber auch nicht sooo viel sinn, da du nur den Post mit dem Post davor vergleichst, könnte ja sein das inzwischenzeit jemand anderes gepostet haben...
--
42 Es gibt keinen Sinn des Lebens.
|
|
Profil || Suche
|
010
04.08.2002, 11:08
chi
|
ja, das könnte ich ja auch mit OR verknüpfung auf den post danach erweitern, ich wäre ja froh wenn allein das funzen würde, das letzte " in deinem code irritiert mich irgendwie
edit aso jetzt versteh ich es thy es funzt so :)
--
when the truth walks away everybody stays cause the truth about the world is that crime does pay
Dieser Beitrag wurde am 04.08.2002 um 11:27 von chi bearbeitet.
|
|
Profil || Suche
|