[PHP] Ip und mehr?

und warum wird es dann als Text gespeichert, wenn es doch eine Zahl ist?

xxx='$wert' heißt: es ist ein Text
 
PHP:
<?php
$warenkorb = !empty($_COOKIE['warenkorb']) ?  $_COOKIE['warenkorb'] : $_SESSION['warenkorb']; 
?>
 
P.s. Wäre net schlecht wenn du mal die Doppeleinträge löschst.


PHP:
<?
$warenkorb = array_unique(explode('TRENNUNG', $warenkorb));
?>

Dann durchläufts das array und prüfst gültie Value Werte. Alles was !is_nummeric ist löschst du. Und zum Schlus aus der DB lesen.

Du kannst dich hier sinnvoll einer Funktion und array_walk() bedienen. Schau mal auf PHP Manual.

array _walk() durchlöuft ein Array als ob es eine Schleife wäre und übergibt die Values an eine belibige Funktion.
 
wenn man seine Cookie deaktiviert hat kommt dieser fehler:

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp100229591_H488WBOVLP/www/test/include/header.php on line 83

hier die Zeilen 82 und 83

PHP:
$result = mysql_query("SELECT count(*) FROM warenkorb WHERE ip='$ip' AND zahl=$zahl");
if(!mysql_result($result,0,0)){

Nun frage ich mich, wie ich diese Fehlermeldung weg bekomme?
Vielen dank
 
PHP:
$result = mysql_query("SELECT count(*) FROM warenkorb WHERE ip='$ip' AND zahl=$zahl") or die(mysql_error()); 
if(!mysql_result($result,0,0)){

 
Danke funktioniert!
Aber leider hört er dann auf den rest der danachfolgenden Zeilen auszugeben
 
ähm, das sollte zur Fehlerfindung dienen.

Es wird sicherlich irgendwie ein Wert fehlen und damit wird $zahl oder evtl. sogar $ip nicht gesetzt.
 
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
 
PHP:
 $result = mysql_query("SELECT count(*) FROM warenkorb WHERE ip='$ip' AND zahl=$zahl") or die(mysql_error()); 
if(!mysql_result($result,0,0)){
 
Ich denke mal, $zahl ist nicht definiert.

Die Query:
PHP:
$result = mysql_query("SELECT count(*) FROM warenkorb WHERE ip='$ip' AND zahl=".(integer)($zahl)) or die(mysql_error());
if(!mysql_result($result,0,0)){
dürfte den Fehler nicht mehr auslösen.

Für Debugging würde ich folgende Variante bevorzugen:
PHP:
	$query = "SELECT count(*) FROM warenkorb WHERE ip='$ip' AND zahl=".(integer)($zahl);
	$result = mysql_query($query) or die("$query<HR>".mysql_error()); 
	if(!mysql_result($result,0,0)){
hier würde man im SQL Fehlerfall mehr sehen.

Aber du solltest trotzdem mal nach der Variabel $zahl (und auch $ip) Ausschau halten, das die auf jedenfall immer definiert ist, sonst reißt du unter Umständen sogar Sicherheitslöcher auf (SQL Injection)
 
Zuletzt bearbeitet:
ich denk auch, dass einfach eine der geforderten Variablen nicht gesetzt ist...gib testweise vor dem Query mal beide Variablen aus...;)