Antworten auf deine Fragen:
Neues Thema erstellen

Ausgabe eines Scripts wird nich angezeigt wie ich möchte

Spatzihasi

Angel Of Death

Hallo zusammen,

da ich bald einen Anfall krieg muss ich mich nochmal an Euch wenden.
Ich musste einen wieder einen Warenkorb basteln aber dieses Mal in einer MySQL Datenbank. Der ganze Warenkorb läuft eigentlich schon aber mich stört noch eine Kleinigkeit.
Es ist so: Ich melde mich als User an, werde auf die artikel.php weitergeleitet wo ich mir meine Artikel auswählen kann.
Hab ich das gemacht werde ich in den Warenkorb über einen Link weitergeleitet, also in die Warenkorb.php. Dort ist ein Link zum Bestellen. Wenn ich auf den LInk "bestellen" klicke OHNE das ich Artikel ausgewählt habe soll kommen " Keine Artikel ausgewählt". Andernfalls soll wie unten stehen: Vielen Dank für Ihre Bestellung.

Das hier ist mein bestellung.php Script aber ich weiss nicht wie ich das Script verändern muss damit die Meldung: "Keine Artikel ausgewählt" ausgegeben wird wenn ich keine Artikel ausgewählt habe.

Vielleicht könnt ihr mir ja helfen. Wenn ihr noch Scripte braucht dann sagt Bescheid. In der MySQL Datenbank hab ich vier Tabellen angelegt: artikel, bestellungen, kunden und warenkorb. In der Tabelle bestellungen werden auch die bestellten Artikel reingeschrieben.

PHP:
<?php
include("dbconnect.php");
include("authentifizierung.php");
$id = $_GET['id'];
if (isset($id)) {
// zunächst prüfen, ob der Kunde den Artikel bereits bestellt hat
$sql = "select * from warenkorb where nummer = $kundenummer AND artikelid = $id";
$result = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($result) > 0) {
// Bestellung aktualisieren
$sql = "update warenkorb set anzahl = anzahl + 1 WHERE nummer = $kundenummer AND artikelid = $id";
mysql_query($sql) or die(mysql_error());
} else {
// Bestellung speichern
$sql = "insert into warenkorb (artikelid, nummer, anzahl) values($id, $kundenummer, 1)";
mysql_query($sql) or die(mysql_error());
}
}
// Warenkorb nach abgeschickter Bestellung löschen
$sql = "delete from warenkorb where (warenkorb.kundenummer = ".$_SESSION['nummer'].")";
mysql_query($sql) or die (mysql_error());

print "<h2>Vielen Dank f&uuml;r Ihre Bestellung</h2><br>";
?>
<html>
<head><title>Artikelseite</title></head>
<body bgcolor="#d2dafa">
<a href="artikel.php">Zur&uuml;ck zur Artikelseite</a>
</body>
</html>
Viele Grüsse
Spatzihasi
 
Zuletzt bearbeitet:

Duddle

Posting-Frequenz: 14µHz

AW: Ausgabe eines Scripts wird nich angezeigt wie ich möchte

Frag beim Bestellen die Datenbank, ob in dem Warenkorb Artikel vorhanden sind. Wenn nicht (lies: leeres Ergebnis), dann zeigst du eben die entsprechende Fehlermeldung an.


Duddle
 

Spatzihasi

Angel Of Death

AW: Ausgabe eines Scripts wird nich angezeigt wie ich möchte

hi,

auf der seite war ich auch schon und ich hab auch schon viele verschiedene dinge ausprobiert aber bekam das irgendwie nich hin. ich weiss auch nich wieso.
es gab keine fehlermeldung aber "vielen dank für ihre bestellung" wurde trotzdem immer ausgegeben *nachgrübel*

get das dann auch wieder mit if(isset)? ich glaub ich hab das wochenende zu lang dran gesessen. bin schon ganz durcheinander.
 

saila

Moderatorle

AW: Ausgabe eines Scripts wird nich angezeigt wie ich möchte

Hi,

wenn du das eins zu eins übernommens hast aus dem php-Manual, dann müsste es ein Ergebnis geben. Wenn nicht, findet dein SELECT nichts oder es ist erst gar nichts in der Warenkorb-Table unter der userid eingetragen.

Du kannst ja die Gegenprüfung machen. Lasse dir den Result aus einem normalen Select ausgeben in Form von
PHP:
<?php
echo '<pre>'; print_r($result); echo '</pre>';

/* und oder */
echo mysql_num_rows($result);
?>

Wenn du einen Query-Browser hast, check über diesen oder letztlich phpMyAdmin verwenden, um direkt in der Datenbank den Select auszuführe und nach Ergebnissen zu sehen.

Per GET die ID von was übergeben? Manipulation berücksichtigt?
 

Spatzihasi

Angel Of Death

AW: Ausgabe eines Scripts wird nich angezeigt wie ich möchte

hi.
ich bin totaler php anfänger und da isses für mich etwas schwer mich da zu entscheiden was ich da übernehmen soll aus dem php manual. da steht zu dem thema viel und mein englisch is nich grad gut.

ich hab in der warenkorb tabelle die felder: warenkorbid, kundenummer, artikelid und anzahl.

was is ein query browser? welche manipulation meinst du? du musst dir das so vorstellen die hefte über die wir lernen sind schlecht. man sammelt sich scriptschnipsel zusammen und versucht was damit zu machen. aber so richtig komm ich damit nich klar.

lg
 

Duddle

Posting-Frequenz: 14µHz

AW: Ausgabe eines Scripts wird nich angezeigt wie ich möchte

Brich es mal in Teilschritte runter:
  1. Wie sieht eine SQL-Abfrage aus, die fragt welche Artikel ein bestimmter Nutzer im Warenkorb hat?
  2. Wie kannst du prüfen, ob ein Ergebnis einer SQL-Abfrage leer ist / keine Reihen enthält?
  3. Wie kannst du in PHP die Fälle "Ergebnis leer" und "Ergebnis nicht leer" unterscheiden?

Das sind alles sehr einfache Schritte, die zusammengefügt deine Antwort ergeben. Ausserdem hast du jeden einzelnen davon schon in deinem vorhandenen Script in ein oder anderer Form benutzt.


Duddle
 

Spatzihasi

Angel Of Death

AW: Ausgabe eines Scripts wird nich angezeigt wie ich möchte

Hi,

ich hab das jetz nochmal in eine If else Anweisung gepackt aber da krieg ich dann nur ausgegeben:

<a href="artikel.php">Zur&uuml;ck zur Artikelseite</a>

Also den Link dazu

Irgendwas mach ich falsch. Hier mein Script:

PHP:
<?php
include("dbconnect.php");
include("authentifizierung.php");
$id = $_GET['id'];
if (isset($id)) {
// zunächst prüfen, ob der Kunde den Artikel bereits bestellt hat
$sql = "select * from warenkorb where nummer = $kundenummer AND artikelid = $id";
$result = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($result) > 0) {
// Bestellung aktualisieren
$sql = "update warenkorb set anzahl = anzahl + 1 WHERE nummer = $kundenummer AND artikelid = $id";
mysql_query($sql) or die(mysql_error());
}
else {
if(mysql_num_rows($result) > 0) {
// Bestellung speichern
$sql = "insert into warenkorb (artikelid, nummer, anzahl) values($id, $kundenummer, 1)";
mysql_query($sql) or die(mysql_error());
print "<h2>Vielen Dank f&uuml;r Ihre Bestellung</h2><br>";
}
// Warenkorb nach abgeschickter Bestellung löschen
$sql = "delete from warenkorb where (warenkorb.kundenummer = ".$_SESSION['nummer'].")";
mysql_query($sql) or die (mysql_error());
if(mysql_num_rows($result) < 0){
print "Leider wurde kein Artikel ausgewählt";
}
}
}
?>
<html>
<head><title>Artikelseite</title></head>
<body bgcolor="#d2dafa">
<a href="artikel.php">Zur&uuml;ck zur Artikelseite</a>
</body>
</html>
 
Zuletzt bearbeitet:

saila

Moderatorle

AW: Ausgabe eines Scripts wird nich angezeigt wie ich möchte

Hi,

also damit du einmal einen in etwa Überblick erhälst, dein Script für den Ansatz etwas überarbeitet:
PHP:
<?php
/* alle Fehler im Script ausgeben */
error_reporting(E_ALL);

/* bisheriges includieren von Dateien 
* include("dbconnect.php");
* include("authentifizierung.php");
* besser wäre bis zum Ende der Entwicklung - danach umstellen auf include 
*/
require_once 'dbconnect.php'; /* require_once liefert auch Fehler */
require_once 'authentifizierung.php'; /* require_once liefert auch Fehler */

/* prüfen, ob der GET-Parameter auch wirklich vorhanden und vom type int ist */
if(isset($_GET['id']) && is_int($_GET['id'])) {

    // zunächst prüfen, ob der Kunde den Artikel bereits bestellt hat
    $result = mysql_query('SELECT 
                                nummer, 
                                artikelid 
                            FROM 
                                warenkorb 
                            WHERE 
                                nummer = "'. mysql_real_escape_string($kundenummer) .'" AND 
                                artikelid = "'. $_GET['id'] .'"') or die(mysql_error());
    
    if(mysql_num_rows($result)) {
        // Bestellung aktualisieren
        mysql_query('UPDATE 
                            warenkorb 
                        SET 
                            anzahl = anzahl + 1 
                    WHERE 
                        nummer = "'. mysql_real_escape_string($kundenummer) .'" AND 
                        artikelid = "'. $_GET['id'] .'"') or die(mysql_error());
    } else {
        echo 'Kein Produkt der ID: '. $_GET['id'] .' im Warenkorb vorhanden.<br />Betroffene Kunden-Id: '. $kundennummer .'.';
            
    }
    
} else {
    echo 'Kein Artikel-Id vorhanden';    
}
?>
Fraglich ist, woher kommt die Kundennummer, wenn der User nicht angemeldet ist?
 
Zuletzt bearbeitet:
K

Kroete12

Guest

AW: Ausgabe eines Scripts wird nich angezeigt wie ich möchte

Ich weiß nicht ob es dein Problem löst, aber benutze statt "print ...", "echo ...".
 

Spatzihasi

Angel Of Death

AW: Ausgabe eines Scripts wird nich angezeigt wie ich möchte

ich hab dein script mal reinkopiert aber da gibts ein parse error in zeile 14 aber für mich ists zum teil schon schwer zu begreifen was da alles steht denn das zb hab ich noch nie gelesen : mysql_real_escape_string
und ich glaub wenn mich der fernlehrer
fragt wieso ich das so und so gemacht habe
oder was das bedeutet seh ich etwas alt aus xD

das soll halt wirklich ganz einfach geschrieben.
angefangen hatte er es mir ja schon wie ich oben geschrieben hab aber da bin ich dann nich weiter gekommen

 

saila

Moderatorle

AW: Ausgabe eines Scripts wird nich angezeigt wie ich möchte

Verwende das php-Manual (PHP: Hypertext Preprocessor) stelle die Sprache auf German und du kannst die Hintergründe zu den jeweiligen Funktionen lesen. Auch wenn du ein einfaches Script schreiben sollst, so kann es nicht schaden, wenn du schon die Sicherheit von Beginn an mit einfliessen lässt. Sicherheit z.B. auf mysql_real_escape_string als auch die Prüfung, ob ein per GET übergebener Wert seinem Typ enspricht. Wie gesagt - alles nachlesbar.

Fehler im obigen Beispielcode ist korrigiert.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.612
Beiträge
1.538.343
Mitglieder
67.524
Neuestes Mitglied
BSKGA
Oben