PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |
|

15-05-2004, 11:17
|
Coniaric
Registrierter Benutzer
|
|
Registriert seit: Apr 2004
Beiträge: 324
|
|
erster Datensatz der Datenbank fehlt immer
Guten Morgen!
Bin mal wieder zu dämlich.
Ich mache folgendes:
PHP-Code:
$query = "SELECT * FROM profile WHERE 1 AND (diverse Bedingungen, die je nach Eingabe des Users variieren)";
$result = mysql_query($query);
$arrayprofil = mysql_fetch_row($result);
while($arrayprofil = mysql_fetch_row($result))
{
//ausgabe
}
Egal, wie ich es anzeigen lasse, der erste Eintrag in der Datenbank fehlt immer. Es liegt auch nicht am Datensatz, wenn ich den nämlich lösche, fehlt der neue erste Datensatz auch wieder.
Wenn ich einen
SELECT COUNT(irgendeineSpalte,die immer gefüllt ist)
mache, dann stimmt das Ergebnis seltsamerweise.
In der ausgabe ist ein Haufen Code, es wird ein Datum zusammengebaut und berechnet und eben der ganze Kram aus der Datenbank angezeigt. Kann mir eigentlich nicht vorstellen, daß es daran liegt.
Aber vielleicht kennt jemand das Problem...
Danke schonmal,
Coniaric
__________________
Gruß, Coni
~~ codito ergo sum - ich code, also bin ich! ~~
|

15-05-2004, 11:19
|
derHund
PHP Master
|
|
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
|
|
Re: erster Datensatz der Datenbank fehlt immer
Zitat:
Egal, wie ich es anzeigen lasse, der erste Eintrag in der Datenbank fehlt immer. Es liegt auch nicht am Datensatz, wenn ich den nämlich lösche, fehlt der neue erste Datensatz auch wieder.
|
schön, wenn man schon vor dem lesen des threads die antwort weiß - sehr gut gewählter titel http://www.php-resource.de/forum/ima...ons/icon14.gif
PHP-Code:
// eine row fetchen! die erste, die dir wohl fehlt!
$arrayprofil = mysql_fetch_row($result);
// alle andren fetchen
while($arrayprofil = mysql_fetch_row($result))
got it?
__________________
Die Zeit hat ihre Kinder längst gefressen
|

15-05-2004, 11:30
|
Coniaric
Registrierter Benutzer
|
|
Registriert seit: Apr 2004
Beiträge: 324
|
|
Re: Re: erster Datensatz der Datenbank fehlt immer
Jo, da hast Du schonmal recht - hab ich glatt übersehen, vielen Dank!
Klappt aber trotzdem noch nicht.
Sieht jetzt so aus:
PHP-Code:
$query = "SELECT * FROM profile WHERE 1 AND (Bedingungen)";
echo"<br>query= $query"; //um zu sehen, ob das query stimmt
$result = mysql_query($query);
while($arrayprofil = mysql_fetch_row($result))
{
echo"....";
}
Ausgabe des Querys:
query= SELECT * FROM profile WHERE 1 LIMIT 0, 30
(Es sind 10 Einträge, 9 werden angezeigt)
Was stimmt jetzt noch nicht?
Es fehlt immernoch der erste Eintrag...
Zitat:
Original geschrieben von derHund
schön, wenn man schon vor dem lesen des threads die antwort weiß - sehr gut gewählter titel http://www.php-resource.de/forum/ima...ons/icon14.gif
PHP-Code:
// eine row fetchen! die erste, die dir wohl fehlt!
$arrayprofil = mysql_fetch_row($result);
// alle andren fetchen
while($arrayprofil = mysql_fetch_row($result))
got it?
|
__________________
Gruß, Coni
~~ codito ergo sum - ich code, also bin ich! ~~
|

15-05-2004, 11:40
|
derHund
PHP Master
|
|
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
|
|
Re: Re: Re: erster Datensatz der Datenbank fehlt immer
Zitat:
Original geschrieben von Coniaric
Jo, da hast Du schonmal recht - hab ich glatt übersehen, vielen Dank!
Klappt aber trotzdem noch nicht.
Sieht jetzt so aus:
Ausgabe des Querys:
query= SELECT * FROM profile WHERE 1 LIMIT 0, 30
(Es sind 10 Einträge, 9 werden angezeigt)
Was stimmt jetzt noch nicht?
Es fehlt immernoch der erste Eintrag...
|
sicher? gibt die query im php_my_admin ne andere rückgabe?
__________________
Die Zeit hat ihre Kinder längst gefressen
|

15-05-2004, 11:46
|
Coniaric
Registrierter Benutzer
|
|
Registriert seit: Apr 2004
Beiträge: 324
|
|
Nein, da stimmt die Ausgabe....
Hier nochmal der komplette Teil des Codes:
PHP-Code:
$query = "SELECT * FROM profile WHERE 1 ";
if (isset($pic)) { $query = $query." AND pfad != '' "; }
if ($plz!="") { $query = $query." AND plz like '$plz%' "; }
if ($mw=="1" || $mw=="2" ) { $query = $query." AND mw=".$mw; }
$query = $query."LIMIT 0, 30";
echo"<br>query= $query";
$result = mysql_query($query);
while($arrayprofil = mysql_fetch_row($result))
{
$idres=$arrayprofil[0];
....
}
Vielleicht liegt es an der Bastelei im query?
__________________
Gruß, Coni
~~ codito ergo sum - ich code, also bin ich! ~~
|

15-05-2004, 11:50
|
Floriam
PHP Senior
|
|
Registriert seit: May 2003
Ort: Deutschland
Beiträge: 1.432
|
|
Könnt mir jemand erklären, was WHERE 1 zu bedeuten hat?
|

15-05-2004, 11:53
|
Coniaric
Registrierter Benutzer
|
|
Registriert seit: Apr 2004
Beiträge: 324
|
|
Na, wo ein Datensatz vorhanden ist.
Das brauche ich, fals in den nachfolgenden Bedingungen nichts drin steht, dann soll nämlich alles angezeigt werden.
Aber das funzt ja eigentlich auch...
Zitat:
Original geschrieben von Floriam
Könnt mir jemand erklären, was WHERE 1 zu bedeuten hat?
|
__________________
Gruß, Coni
~~ codito ergo sum - ich code, also bin ich! ~~
|

15-05-2004, 11:54
|
derHund
PHP Master
|
|
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
|
|
Zitat:
Vielleicht liegt es an der Bastelei im query?
|
hast du die _generierte_ query getested? wohl schon ...
mach mal in der while
PHP-Code:
print_r ($arrayprofil);
das WHERE 1 ist wohl nen dummy, damit die bastel-query funktionert. WHERE 1 ist true, wie wohl WHERE 0 false ist.
__________________
Die Zeit hat ihre Kinder längst gefressen
|

15-05-2004, 11:57
|
Coniaric
Registrierter Benutzer
|
|
Registriert seit: Apr 2004
Beiträge: 324
|
|
Sorry, umgekehrt.
Wenn eine Bedingung gesetzt ist und KEIN where 1 drin steht, bekomme ich ne Fehlermeldung, weil der Query dann z.B.
query= SELECT * FROM profile AND mw=2 LIMIT 0, 30 heißt.
Das where kann ich ja natürlich nicht vor jede BEdingung setzen, weil es sonst mehrfach vorkommen könnte.
__________________
Gruß, Coni
~~ codito ergo sum - ich code, also bin ich! ~~
|

15-05-2004, 12:00
|
Coniaric
Registrierter Benutzer
|
|
Registriert seit: Apr 2004
Beiträge: 324
|
|
Zitat:
Original geschrieben von derHund
hast du die _generierte_ query getested? wohl schon ...
|
Ja....
Zitat:
mach mal in der while
PHP-Code:
print_r ($arrayprofil);
|
dann kommen alle 10 Einträge.....
das WHERE 1 ist wohl nen dummy, damit die bastel-query funktionert. WHERE 1 ist true, wie wohl WHERE 0 false ist. [/QUOTE]
Genau.
__________________
Gruß, Coni
~~ codito ergo sum - ich code, also bin ich! ~~
|

15-05-2004, 12:03
|
derHund
PHP Master
|
|
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
|
|
Zitat:
dann kommen alle 10 Einträge.....
|
supi, jetzt wissen wir bescheid ... problem gelöst?
__________________
Die Zeit hat ihre Kinder längst gefressen
|

15-05-2004, 12:06
|
Coniaric
Registrierter Benutzer
|
|
Registriert seit: Apr 2004
Beiträge: 324
|
|
Äh...Du vielleicht...warum kommen dann bei meiner Ausgabe nur 9??
Zitat:
Original geschrieben von derHund
supi, jetzt wissen wir bescheid ... problem gelöst?
|
__________________
Gruß, Coni
~~ codito ergo sum - ich code, also bin ich! ~~
|

15-05-2004, 12:12
|
derHund
PHP Master
|
|
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
|
|
Zitat:
Original geschrieben von Coniaric
Äh...Du vielleicht...warum kommen dann bei meiner Ausgabe nur 9??
|
wenn du mal den inhalt der while postest, sag ichs dir
__________________
Die Zeit hat ihre Kinder längst gefressen
|

15-05-2004, 12:14
|
Coniaric
Registrierter Benutzer
|
|
Registriert seit: Apr 2004
Beiträge: 324
|
|
Die Ausgabe oder den Code?
code ist ne ganze Menge dazwischen...
__________________
Gruß, Coni
~~ codito ergo sum - ich code, also bin ich! ~~
|

15-05-2004, 12:17
|
Coniaric
Registrierter Benutzer
|
|
Registriert seit: Apr 2004
Beiträge: 324
|
|
PHP-Code:
while($arrayprofil = mysql_fetch_row($result))
{
$idres=$arrayprofil[0];
//print_r ($arrayprofil);echo"<br>";
//-----------alter
//gebdat aus Datenbank
$datdat=$arrayprofil[6];
//in deutsches format
$datdat = explode("-",$datdat);
//abfragen, ob Gebdat vorhanden, wenn nicht, variable leeren
if($datdat[2]=="00" || $datdat[1]=="00" || $datdat[0]=="0000")
{
unset($alter);
}
else
{
$gebdatdat = $datdat[2].".".$datdat[1].".".$datdat[0];
$alter = 0;
// Umbauen Datum in die Form JJJJMMTT
$gebdt = explode(".", $gebdatdat);
$gebdt = $gebdt[2].$gebdt[1].$gebdt[0];
$now = date("Ymd", time());
WHILE ($gebdt < $now - 9999) {
$alter++;
$gebdt = $gebdt + 10000;
}
}
if ($idres == $id)
{
echo" ";
}
elseif ($salter!="" && $alter != $salter)
{
echo"salter=$salter,alter=$alter <br>";
}
else
{
if ($arrayprofil[9] == "")
{
$foto=" ";
}
else {
$foto="<img src=\"../bilder/pic.gif\"";
}
$nick=$arrayprofil[1];
if ($arrayprofil[7] == "0")
{
$plz="n/a";
}
else {$plz=$arrayprofil[7];}
//-----m oder w ------
if ($arrayprofil[5] == "1")
{
$gender="<img src=\"../bilder/male_klein.gif\" ";
}
elseif ($arrayprofil[5] == "2")
{
$gender="<img src=\"../bilder/female_klein.gif\" ";
}
else
{
$gender="n/a";
}
echo"
<tr>
<td>$foto </td>
<td><a href=\"sprofil.php?wert=$idres\">$nick <a></td>
<td>$alter </td>
<td align=\"center\">$gender </td>
<td>$plz </td>
<td>$idres </td>
</tr>
";
} //if idres=id
} //while auslesen-Schleife
echo"</table>";
__________________
Gruß, Coni
~~ codito ergo sum - ich code, also bin ich! ~~
Geändert von Coniaric (15-05-2004 um 12:27 Uhr)
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
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.
HTML-Code ist aus.
|
|
|
|
PHP News
|