BlackBoard » Design, Programmierung & Entwicklung » Programmieren » PHP Problem bei Abfrage » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Problem bei Abfrage
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
SpL!T
Junior Member


Dabei seit: 31.12.2004
Beiträge: 141

Problem bei Abfrage       Zum Anfang der Seite springen

Hi,

Habe ein Script geschrieben, wo der Benutzer Daten in eine Datenbank einschrieben kann, welche danach auf einer Seite ausgelesen werden. Und zwar so, dass die Spalte mit der höchsten id zu oberst erscheint. Problem ist nun, dass sobald die 10. Spalte ( id logischerweise = 10) eingetragen wird, diese nicht ausgegeben wird. Ich verstehe jedoch nicht wieso das so ist.

Hier der Code der Ausgabeseite:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
//db connenct//
$host="******";
$user="******";
$pwd="******";
$db="******";
$ident=mysql_connect($host$user$pwd);
//end db connect //

$stop=0;

$sqls="select max(id) as maxid from reps";
$res=mysql_db_query($db$sqls$ident);
$maxid=mysql_result($res,0);

for ($a=$maxid;$a>=and $stop<10;$a--){


$sqls="select * from reps where id=$a";
$res=mysql_db_query($db$sqls$ident);

<<<HIER STEHT DIE AUSGABE>>>

$stop=$stop+1;
}


Besten Dank schonmal im Voraus.

mfg

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von SpL!T: 08.02.2006 18:31.

08.02.2006 09:11 SpL!T ist offline E-Mail an SpL!T senden Beiträge von SpL!T suchen
LX LX ist männlich
El Comandante en Jefe


images/avatars/avatar-2290.gif

Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx

RE: Problem bei Abfrage       Zum Anfang der Seite springen

Geht's noch ein wenig umständlicher? Augenzwinkern

Soweit ich es dem Code entnehmen kann, willst du also die letzten 10 Einträge aus der Datenbank lesen und ausgeben?

Wie wär's damit:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
//db connect//
$host  '******';
$user  '******';
$pwd   '******';
$db    '******';
$ident mysql_connect $host$user$pwd );
//end db connect //

$sql 'SELECT * FROM reps ORDER BY id DESC LIMIT 10';
$res mysql_db_query $db$sql$ident );

/* <<<HIER STEHT DIE AUSGABE>>> */


__________________
JS-Games.de - Misled Scripting Skills Gone Mad | Meine Filmkritiken | Urban Photography
Kommt mal in den IRC-Channel: irc.eu.freenode.net | Port 6667 | #blackboard

"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

08.02.2006 11:04 LX ist offline E-Mail an LX senden Homepage von LX Beiträge von LX suchen
SpL!T
Junior Member


Dabei seit: 31.12.2004
Beiträge: 141

Themenstarter Thema begonnen von SpL!T
      Zum Anfang der Seite springen

Besten Dank für deine Antwort.

Dein Vorschlag macht sinn und ist wohl auch die elgantere variante *g*

Bei meiner for-Schlaufe konnte ich einfach bei jedem durchlauf eine Spalte aus der Datenbanktabelle ausgeben. Wie sieht die Ausgabe (Abgesehen von Tabellen etc) bei deiner Variante aus?
09.02.2006 08:48 SpL!T ist offline E-Mail an SpL!T senden Beiträge von SpL!T suchen
LX LX ist männlich
El Comandante en Jefe


images/avatars/avatar-2290.gif

Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx

Achtung       Zum Anfang der Seite springen

$res ist ein gleich aufgebautes mySQL-Resultset, wie du es auch innerhalb deiner for-Schleife hast... nur dass es eben nicht nur einen, sondern 10 Datensätze enthält.

Mögliche Ausgabe:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
echo '<table>';
while ( $zeile mysql_fetch_assoc $res ) )
{
  echo '<tr>';
  foreach ( $zeile as $spalte )
  {
    echo '<td>' $spalte '</td>';
  }
  echo '</tr>';
}
echo '</table>';


__________________
JS-Games.de - Misled Scripting Skills Gone Mad | Meine Filmkritiken | Urban Photography
Kommt mal in den IRC-Channel: irc.eu.freenode.net | Port 6667 | #blackboard

"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

09.02.2006 10:37 LX ist offline E-Mail an LX senden Homepage von LX Beiträge von LX suchen
SpL!T
Junior Member


Dabei seit: 31.12.2004
Beiträge: 141

Themenstarter Thema begonnen von SpL!T
      Zum Anfang der Seite springen

Besten Dank für deine Antwort.

Nur 2 Zeilen verstehe ich nicht. Bzw weiss nicht, was sie bewirken:

php:
1:
mysql_fetch_assoc $res )

und
php:
1:
foreach ( $zeile as $spalte )


Wie von dir beschrieben kann ich sämtliche Daten aus der Datenbank zwar als Tabelle ausgeben. Ich habe jedoch ein komplexe Tabellenstruktur, in der ich einzelne Daten an verschiedenen Orten in der Tabelle ausgeben muss.
Bisher hab ich dann einfach ein
php:
1:
echo mysql_result($res,0"Wert");
an dem ort eingefügt, wos stehen sollte.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von SpL!T: 09.02.2006 10:58.

09.02.2006 10:58 SpL!T ist offline E-Mail an SpL!T senden Beiträge von SpL!T suchen
LX LX ist männlich
El Comandante en Jefe


images/avatars/avatar-2290.gif

Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx

Achtung       Zum Anfang der Seite springen

mysql_fetch_assoc() packt den nächsten Datensatz eines Resultsets in ein assoziatives Array. Finde ich syntaktisch ein bisschen einfacher als mysql_result.

foreach() ist für die einfache Ausgabe eines Arrays. Das ist wie eine for-Schleife, nur dass du keinen Index brauchst den du hoch oder runter zählst, sondern dass einfach alle Elemente nacheinander abgeklappert werden.

Wenn du die Daten in anderer Reihenfolge ausgeben willst, oder mehrere Spalten in einer Tabellenzelle unterbringen willst, dann ersetze das foreach durch anderen Ausgabecode. In meinem Beispiel kannst du eine bestimmte Spalte innerhalb des aktuellen Datensatzes auch einfach mit
php:
1:
echo $zeile 'spaltenname' ];
ausgeben.

__________________
JS-Games.de - Misled Scripting Skills Gone Mad | Meine Filmkritiken | Urban Photography
Kommt mal in den IRC-Channel: irc.eu.freenode.net | Port 6667 | #blackboard

"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

09.02.2006 11:35 LX ist offline E-Mail an LX senden Homepage von LX Beiträge von LX suchen
SpL!T
Junior Member


Dabei seit: 31.12.2004
Beiträge: 141

Themenstarter Thema begonnen von SpL!T
Daumen hoch!       Zum Anfang der Seite springen

großes Grinsen großes Grinsen Spitze großes Grinsen großes Grinsen

Endlich sehen meine Scripts bissl schöner und geordneter aus smile

Hast mir echt geholfen LX! Vielen Dank smile

EDIT:

Hab noch ein kleines Feature eingebaut, indem es möglich sein soll, nur die Daten aus einer bestimmten Zeile (durch id bestimmt) anzuzgeigen.

Sieht dann so aus:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
if (isset($filter))
{
    $sql 'SELECT * FROM reps WHERE id=$filterid';
}

else 
{
    $sql 'SELECT * FROM reps ORDER BY id DESC LIMIT 10';
}


die variable $filterid sowie $filter sind vorhanden und haben den entpsrechenden wert. Ich kriege aber folgende Fehlermeldung auf der Seite:

code:
1:
2:
3:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /PFAD/SITENAME.php on line 84


wenn ich zum test

php:
1:
$sql 'SELECT * FROM reps WHERE id=$filterid';

durch
php:
1:
$sql 'SELECT * FROM reps WHERE id=9';

ersetze funktioniert das ganze. Es wird mir also nur die Zeile mit der Id "9" angezeigt.

Dieser Beitrag wurde 7 mal editiert, zum letzten Mal von SpL!T: 09.02.2006 13:57.

09.02.2006 13:27 SpL!T ist offline E-Mail an SpL!T senden Beiträge von SpL!T suchen
LX LX ist männlich
El Comandante en Jefe


images/avatars/avatar-2290.gif

Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx

Achtung       Zum Anfang der Seite springen

Schau dir mal den Unterschied zwischen Strings in doppelter und einfacher Anführung an.

__________________
JS-Games.de - Misled Scripting Skills Gone Mad | Meine Filmkritiken | Urban Photography
Kommt mal in den IRC-Channel: irc.eu.freenode.net | Port 6667 | #blackboard

"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

09.02.2006 14:46 LX ist offline E-Mail an LX senden Homepage von LX Beiträge von LX suchen
SpL!T
Junior Member


Dabei seit: 31.12.2004
Beiträge: 141

Themenstarter Thema begonnen von SpL!T
      Zum Anfang der Seite springen

Herzlichen Dank smile alles klar.

Wieder was gelernt smile

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von SpL!T: 09.02.2006 15:18.

09.02.2006 15:18 SpL!T ist offline E-Mail an SpL!T senden Beiträge von SpL!T suchen
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
BlackBoard » Design, Programmierung & Entwicklung » Programmieren » PHP Problem bei Abfrage

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH