Autor |
Nachricht |
gtz
Dabei seit: 15.04.2002
Ort: -
Alter: 48
Geschlecht:
|
Verfasst Mo 04.04.2005 10:33
Titel
|
|
|
wenn er erwartet, dass 3 datensätze vorhanden sind, dann hat sich sein problem soeben in luft aufgelöst.
|
|
|
|
|
eViLaSh
Dabei seit: 22.05.2003
Ort: Texas
Alter: 40
Geschlecht:
|
Verfasst Mo 04.04.2005 10:38
Titel
|
|
|
aber er hat doch gesagt, das der 1. datensatz einfach nicht ausgegeben wird...
naja keine Ahnung - wenn er sich natürlich falsch ausdrückt
|
|
|
|
|
Anzeige
|
|
|
chrikle
Threadersteller
Dabei seit: 02.05.2002
Ort: NRW
Alter: 47
Geschlecht:
|
Verfasst Mo 04.04.2005 10:40
Titel
|
|
|
Nö, das ist schon so, das die Datenbank 2 Einträge hat.
Er gibt aber über die WHILE-Schleife nur den 2. aus.
Das wurde von eViLaSh richtig interpretiert.
Gruß
Chris
|
|
|
|
|
chrikle
Threadersteller
Dabei seit: 02.05.2002
Ort: NRW
Alter: 47
Geschlecht:
|
Verfasst Mo 04.04.2005 12:10
Titel
|
|
|
Ich hab es jatzt mal auf einen anderen Server probiert. Da das gleiche Ergebnis.
Dann habe ich es mal als ein ganz einfaches Script geschrieben. Sprich alles untereinander weg.
- DB öffnen
- DB auslesen
- Werte übergeben
- Werte mittels while-Schleife ausgeben
und siehe da, es funktioniert?!?
Das ursrpüngliche Script ist gesplittet. Sprich die DB-Geschichte wir per function abgewickelt.
hier mal das Script:
Code: | function DB($SQL)
{
global $DB_Leitung, $DB_Daten, $Anfrage;
//Datenbankzugangsdaten
//Strato
$DB_Benutzer = "XXXX";
$DB_Passwort = "XXXX";
$DB_Pfad = "localhost";
$DB_Datenbank = "XXXX";
$DB_Leitung = @mysql_connect($DB_Pfad, $DB_Benutzer, $DB_Passwort);
if(false === $DB_Leitung)
{
die("Kann keine Verbindung zur Datenbank herstellen");
}
$DB_Auswahl = mysql_select_db($DB_Datenbank, $DB_Leitung);
if(false === $DB_Auswahl)
{
die("Kann keine Verbindung zur Datenbank herstellen");
}
$Anfrage = mysql_query($SQL, $DB_Leitung);
//Ist der Übergebene SQL-Befehl UPDATE oder INSERT soll natürlich kein auslesen der Daten geschehen.
if((!eregi('UPDATE', $SQL, $werte)) AND (!eregi('INSERT', $SQL, $werte)))
{
$DB_Daten = mysql_fetch_array($Anfrage);
}
mysql_close($DB_Leitung);
} |
und die Ausgabe ist ja schon bekannt. Es scheint daran zu liegen, das in dieser Zeile:
Code: | $DB_Daten = mysql_fetch_array($Anfrage); |
Die Werte zwar übergeben werden, aber irgendwie nicht sauber?
ich habe mal folgendes geschrieben (in kombination mit der function):
Code: |
<?php
DB("SELECT * FROM Shop_Kategorien ORDER BY Sortierung ASC");
$Anzahl = count($DB_Daten);
echo("Anzahl: ".$Anzahl."<br>");
for($x=0; $x < $Anzahl; $x++)
{
echo('<tr>');
echo('<td width="97%">'.$DB_Daten[$x].'</td>');
echo('<td width="1%">Vor</td>');
echo('<td width="1%">Zurück</td>');
echo('<td width="1%">Bearbeiten</td>');
echo('</tr>');
}
?>
|
Das kommt dabei heraus:
Code: | Anzahl: 6
1 Vor Zurück Bearbeiten
1 Vor Zurück Bearbeiten
Shampoo Vor Zurück Bearbeiten
Vor Zurück Bearbeiten
Vor Zurück Bearbeiten
Vor Zurück Bearbeiten
|
Also, er hat zwar den Platz für den zweiten DB-Eintrag reserviert, aber er gibt nur "LEERZEILEN" aus.
Wieso? kann mir da jemand weiterhelfen?
Gruß
Chris
|
|
|
|
|
lexynet
Dabei seit: 04.04.2005
Ort: Dessau
Alter: 43
Geschlecht:
|
Verfasst Mo 04.04.2005 12:42
Titel
|
|
|
Andere das bitte mal volgendermaßen ab .. und poste mal das ergebnis
Code: |
<?php
DB("SELECT * FROM Shop_Kategorien ORDER BY Sortierung ASC");
print'<pre>';
print '##########';
print_r($DB_Daten);
print '##########';
print'</pre>';
?>
|
um den Grund heraus zu finden.
es geht aber sonst auch so:
Code: |
<?php
DB("SELECT * FROM Shop_Kategorien ORDER BY Sortierung ASC");
$Anzahl = count($DB_Daten);
echo("Anzahl: ".$Anzahl."<br>");
for($x=0; $x < $Anzahl; $x++)
{
echo('<tr>');
echo('<td width="97%">'.(integer)$DB_Daten[$x].'</td>');
echo('<td width="1%">Vor</td>');
echo('<td width="1%">Zurück</td>');
echo('<td width="1%">Bearbeiten</td>');
echo('</tr>');
}
?>
|
Zuletzt bearbeitet von lexynet am Mo 04.04.2005 12:43, insgesamt 1-mal bearbeitet
|
|
|
|
|
chrikle
Threadersteller
Dabei seit: 02.05.2002
Ort: NRW
Alter: 47
Geschlecht:
|
Verfasst Mo 04.04.2005 13:06
Titel
|
|
|
Hier das Ergebnis:
Code: | Anzahl: 6
1 Vor Zurück Bearbeiten
1 Vor Zurück Bearbeiten
0 Vor Zurück Bearbeiten
0 Vor Zurück Bearbeiten
0 Vor Zurück Bearbeiten
0 Vor Zurück Bearbeiten |
gruß
Chris
|
|
|
|
|
lexynet
Dabei seit: 04.04.2005
Ort: Dessau
Alter: 43
Geschlecht:
|
Verfasst Mo 04.04.2005 13:09
Titel
|
|
|
sieht doch ganz ok aus .. oder ? ... da scheinen einfach in den werten die in die datenbank geschrieben wurden leerzeichen mit drin zu sein
|
|
|
|
|
chrikle
Threadersteller
Dabei seit: 02.05.2002
Ort: NRW
Alter: 47
Geschlecht:
|
Verfasst Mo 04.04.2005 13:30
Titel
|
|
|
Ne. so leicht ist das leider nicht. Wenn ich über phpMyAdmin die DB anschaue
stehen die Werte da. Da ist nix mit Leerzeichen.
Wie gesagt, es scheint irgendetwas mit der Übergabe von der Function zum Aufruf passieren.
Wenn ich das ganze ohne Funktion schreibe, sondern direkt an der Stelle, dann klappt es.
Es liegt vielleicht an der if-Abfrage in der Funktion:
Code: | //Ist der Übergebene SQL-Befehl UPDATE oder INSERT soll natürlich kein auslesen der Daten geschehen.
if((!eregi('UPDATE', $SQL, $werte)) AND (!eregi('INSERT', $SQL, $werte)))
{
$DB_Daten = mysql_fetch_array($Anfrage);
} |
Gruß
Chris
|
|
|
|
|
|
|
|
Ähnliche Themen |
(php-mysql) übergabe von formulardaten und abfrage m. mysql
[php+mysql] abfrage von x bis y
MySql abfrage
MySQL Abfrage
[PHP, MySQL] Sortierung bei Abfrage
[PHP/MYSQL] Abfrage - Problem
|
|