Autor Zpráva
web2000
Profil *
Ahoj, řeším takovýto problém.

V proměnné $ahoj mám uložené údaje, provedu SQL dotaz.

Dále potřebuji do proměnné uložit nové údaje, ale skript si pamatuje ještě ty předchozí a jen je k nim přidá. Data vkládám s pole.

Existuje nějaký příkaz kterým obsah pole či proměnnou - její obsah vymažu?

Díky za radu
AM_
Profil
Něco jsi zamlčel, možná používáš špatný přiřazovací operátor .=
V zásadě
$x = 'a'; //$x je nyní 'a'
$x = 'b'; //$x je nyní 'b', a ne 'ab'
web2000
Profil *
Mezitím mě napadlo napsat

$ ahoj = "text1";

$ahoj = " "

$ahoj = " text2"

obsah se smaže, a před další větu se přidá jen mezera.
web2000
Profil *
Něco jsi zamlčel, možná používáš špatný přiřazovací operátor .=
V zásadě
12 $x = 'a'; //$x je nyní 'a'
$x = 'b'; //$x je nyní 'b', a ne 'ab'

no jde spíš oto že používám dvě pole a data znich ukládám do proměnné $ahoj ale ve dvou krocích, ale nevím proč obsah prvního pole v proměnné ahoj zůstane když ho přepíšu druhým polem.
Alphard
Profil
web2000:
ukažte svůj kód, věštit neumíme
AM_
Profil
$ahoj = " text2"

obsah se smaže, a před další větu se přidá jen mezera.


Taky aby ne, když máš " text2" místo "text2".
web2000
Profil *
Proměnná se zde jmenuje zboží

zkrátka bez přepsání této proměnné tou mezerou se mi obsahy obou polí sloučí, s tou mezerou se mi obsah prvního pole přepíše na mezeru a kní se přidá obsah druhého pole. to už je docela gut ale určitě existuje něco profesionálnějšího:) jak to pořešit.

// VYPÍŠE ZBOŽÍ 1. OBCHODNÍKA A ULOŽÍ JEJ DO PROMĚNNÉ $stav1
$kod_obchodnika = "35084973";
$result1 = mysql_query("SELECT * FROM kosik INNER JOIN produkty ON kosik.produktid = produkty.id WHERE kosik.cookieid = '" . KosikId() . "' AND obchodnik_id='35084973' ORDER BY produkty.nazev ASC");
$i1 = 1; 
$pole1 = array (); 
while ($row1 = mysql_fetch_array($result1))
{ 
 $pole1[$i1] =  $row1["pocet"]." ks "; 
 $pole1[$i1] .= $row1["nazev"]. " "; 
 $pole1[$i1] .= $row1["cena"]." Kč "; 
 $i1++; 
}
foreach ($pole1 as $index1 => $stav1) 
$zbozi .= $stav1. "<br />";

$sql1 = "INSERT INTO objednavky values (0,'$ip_adresa', '$datum', '$zbozi', '".$_POST["jmeno"]."', '".$_POST["prijmeni"]."', '".$_POST["ulice"]."', '".$_POST["cp"]."', '".$_POST["mesto"]."', '".$_POST["psc"]."','".$_POST["email"]."', '".$_POST["poznamka"]."', '".$_POST["prepni"]."')";
$vystup1 = mysql_query ($sql1);
$zbozi = " "; // vymaže obsah pole

// VYPÍŠE ZBOŽÍ 2. OBCHODNÍKA A ULOŽÍ JEJ DO PROMĚNNÉ $stav2
$kod_obchodnika = "25045987";
$result2 = mysql_query("SELECT * FROM kosik INNER JOIN produkty ON kosik.produktid = produkty.id WHERE kosik.cookieid = '" . KosikId() . "' AND obchodnik_id='25045987' ORDER BY produkty.nazev ASC");
$i2 = 1; 
$pole2 = array (); 
while ($row2 = mysql_fetch_array($result2))
{ 
 $pole2[$i2] =  $row2["pocet"]." ks "; 
 $pole2[$i2] .= $row2["nazev"]. " "; 
 $pole2[$i2] .= $row2["cena"]." Kč "; 
 $i2++; 
}
foreach ($pole2 as $index2 => $stav2) 
$zbozi .= $stav2. "<br />";

$sql2 = "INSERT INTO objednavky values (0,'$ip_adresa', '$datum', '$zbozi', '".$_POST["jmeno"]."', '".$_POST["prijmeni"]."', '".$_POST["ulice"]."', '".$_POST["cp"]."', '".$_POST["mesto"]."', '".$_POST["psc"]."','".$_POST["email"]."', '".$_POST["poznamka"]."', '".$_POST["prepni"]."')";
$vystup2 = mysql_query ($sql2);
AM_
Profil
Když chceš obsah smazat, nepřiřazuj mezeru, ale prázdný řetězec.
keeehi
Profil
V tomto případě to děláš vlastně dobře až na to, že místo $zbozi = " "; se použije $zbozi = ""; (prostě bez mezery)
Pro zrušení proměnné se může použít unset();
web2000
Profil *
Díky, za rady, použil sem ten prázdný řetězec.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: