 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
28.08.2005, 16:35
|
#1
|
|
TP-Supporter
Registriert seit: Jan 2005
Ort: Sauerland
|
[mysql] where will nicht
Hallo!
Ich komme nicht mehr weiter
Was ist an folgendem Code falsch?
PHP-Code:
$result = mysql_query("SELECT pid, artikelbez, artikelnr, preis FROM artikel WHERE pid = '$key_pid' ");
//
Geht "where" nicht mit einer Variablen, doch oder? Problem ist, es wird nur der erste Wert aus Variable "$key_pid" in Verbindung mit der Spalte "pid" der Tabelle ausgegeben.
$key_pid ist auf jeden Fall i.O. Die habe ich mir ausgeben lassen.
__________________
Der Zynismus ist meine Rüstung, der Sarkasmus mein Schwert und die Ironie mein Schild.
|
|
|
28.08.2005, 16:41
|
#2
|
|
TP-Veteran
Registriert seit: Jun 2004
Ort: Stuttgart
|
ist pid vielleicht ein integer wert? wenn ja dann lass die ' weg.
|
|
|
28.08.2005, 16:41
|
#3
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Zitat:
|
Zitat von Era W Xel
Geht "where" nicht mit einer Variablen, doch oder?
|
Ja, geht.
Zitat:
|
Zitat von Era W Xel
Problem ist, es wird nur der erste Wert aus Variable "$key_pid" in Verbindung mit der Spalte "pid" der Tabelle ausgegeben.
|
was heißt hier nur der erste Wert? Ist $key_pid ein Array? dann geht es nicht.
dann müsstest du mit foreach für jedes Array-Element eine Abfrage anschmeißen.
|
|
|
28.08.2005, 17:03
|
#4
|
|
TP-Supporter
Registriert seit: Jan 2005
Ort: Sauerland
|
OK, danke. Es ist wohl besser ich zeig Euch den ganzen Code.
Anm.: Ich lerne noch
Zitat:
|
ist pid vielleicht ein integer wert? wenn ja dann lass die ' weg.
|
Ja, habs geändert, wars aber auch nicht. Schade.
_________
Habe den Code jetzt aufs nötigste reduziert (HTML weg), also nicht wundern. Dann weiß ich auch, dass noch ne gaaanze Menge fehlt.
Mein Ziel ist aber erstmal nur, die Werte ordentlich auszulesen, d.h. artikelbez, artikelnr usw (s. Code).
PHP-Code:
<?php
session_start();
include("config.php");
error_reporting(E_ALL);
$showart = $_POST["artid"];
$menge = $_POST["menge"];
$warenkorb = array($showart => $menge);
$warenkorb[] = "80"; //nur zum Testen
echo "<pre>\n";
print_r($warenkorb);
echo "</pre>\n";
$_SESSION["warenkorb"] = $warenkorb;
foreach($_SESSION["warenkorb"] as $key_pid => $wert_menge) {
$result = mysql_query("SELECT pid, artikelbez, artikelnr, preis FROM artikel WHERE pid = $key_pid ");
while($row = mysql_fetch_object($result)) {
$artikelbez = $row -> artikelbez;
$artikelnr = $row -> artikelnr;
$preis = $row -> preis;
/*
* Ausgabe der Werte (...) Hier sollten jetzt eigentlich 2 Zeilen, gefüllt
* mit den Variblen von oben, stehen. Steht aber nur eine Zeile da,
* nämlich pid =1. Wo ist der Fehler?
*/
}
}
?>
Wenn da jetzt ein dicker Wurm drin ist, bitte nicht hauen 
__________________
Der Zynismus ist meine Rüstung, der Sarkasmus mein Schwert und die Ironie mein Schild.
|
|
|
28.08.2005, 17:18
|
#5
|
|
TP-Veteran
Registriert seit: Jun 2004
Ort: Stuttgart
|
probier mal das:
PHP-Code:
foreach($_SESSION["warenkorb"] as $key_pid => $wert_menge) { $sql = sprintf("SELECT pid, artikelbez, artikelnr, preis FROM artikel WHERE pid = %d", $key_pid); echo $sql."<br/>"; /*$result = mysql_query($sql); while($row = mysql_fetch_object($result)) { $artikelbez = $row -> artikelbez; $artikelnr = $row -> artikelnr; $preis = $row -> preis; }*/ }
und sag mal was da bei dir rauskommt.
|
|
|
28.08.2005, 17:20
|
#6
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Wie schaut denn deine DB aus? also ich habe es mal nachgebaut und es funktioniert.
|
|
|
28.08.2005, 17:26
|
#7
|
|
TP-Supporter
Registriert seit: Jan 2005
Ort: Sauerland
|
Das hier:
Zitat:
SELECT pid, artikelbez, artikelnr, preis FROM artikel WHERE pid = 1
SELECT pid, artikelbez, artikelnr, preis FROM artikel WHERE pid = 2
|
__________________
Der Zynismus ist meine Rüstung, der Sarkasmus mein Schwert und die Ironie mein Schild.
|
|
|
28.08.2005, 17:27
|
#8
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
Hä ? key_pad ist ein Array, also muss da auch stehen
where pid=$key_pad[0]
oder sowas, auf jeden Fall ein Element
|
|
|
28.08.2005, 17:31
|
#9
|
|
TP-Supporter
Registriert seit: Jan 2005
Ort: Sauerland
|
Zitat:
|
Zitat von webcreate
Wie schaut denn deine DB aus? also ich habe es mal nachgebaut und es funktioniert.
|
Die sollte eigentlich i.O. sein, da ich die Werte (artikelnr, artikelbez und preis) in einer anderen Seite ausgelesen kriege
PHP-Code:
Feld Typ Kollation Attribute Null Standard Extra Aktion
pid int(14) Nein auto_increment
kategorie varchar(40) latin1_general_ci Ja NULL
artikelnr varchar(8) latin1_general_ci Ja NULL
artikelbez varchar(50) latin1_general_ci Ja NULL
preis decimal(6,2) Nein 0.00
Ach Mist! Kannst du da was erkennen?
__________________
Der Zynismus ist meine Rüstung, der Sarkasmus mein Schwert und die Ironie mein Schild.
|
|
|
28.08.2005, 17:32
|
#10
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Also ich habe in die while-Schleife noch folgendes
PHP-Code:
echo "<p>";
foreach($row as $key => $value)echo $key.": ".$value."<br>";
echo "</p>";
und bekomme mit dem Script von die alles ausgegeben.
DB Struktur schaut bei mir so aus:
Code:
#
# Tabellenstruktur für Tabelle `artikel`
#
CREATE TABLE `artikel` (
`pid` int(10) NOT NULL auto_increment,
`artikelbez` varchar(255) NOT NULL default '',
`artikelnr` varchar(255) NOT NULL default '',
`preis` varchar(255) NOT NULL default '',
PRIMARY KEY (`pid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
|
|
|
28.08.2005, 17:34
|
#11
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Zitat:
|
Zitat von St@eff.en
key_pad ist ein Array, also muss da auch stehen
|
Hä? -Sag ich mir auch gerade.
Wie kommst du da auf nen Array? Es beihnaltet den Bezeichner eines Array-Elementes, das schon.
|
|
|
28.08.2005, 17:37
|
#12
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
Ja Du hast Recht - alles etwas verschachtelt.
Da steht ja auch $warenkorb = array($showart => $menge);
Also steht in $key_pad $_POST['artid']
PS zur Vereinfachung nutz ich immer sowas:
echo '<pre>'.print_r($warenkorb,true).'</pre>';
|
|
|
28.08.2005, 17:44
|
#13
|
|
TP-Supporter
Registriert seit: Jan 2005
Ort: Sauerland
|
Ja. Bis zur foreach Schleife läuft bei mir auch alles rund. Nur sobald ich die Datenbank abfrage gehts nicht mehr!
__________________
Der Zynismus ist meine Rüstung, der Sarkasmus mein Schwert und die Ironie mein Schild.
|
|
|
28.08.2005, 17:52
|
#14
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
dann nimm doch mal
PHP-Code:
$result = mysql_query("SELECT pid, artikelbez, artikelnr, preis FROM artikel WHERE pid = $key_pid ") or die("Fehler mit pid=$key_pid");
|
|
|
28.08.2005, 18:16
|
#15
|
|
TP-Supporter
Registriert seit: Jan 2005
Ort: Sauerland
|
DAS GIBT ES NICHT!
Ich habe gerade die Tabelle neu gemacht. Schwupps geht es auf einmal. Ist zwar super, aber warum?
Aber trotzdem danke für die Mithilfe
ps: Das mit dem die(..) ist übrigens ne gute Idee!
__________________
Der Zynismus ist meine Rüstung, der Sarkasmus mein Schwert und die Ironie mein Schild.
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
| | |