19. januar 2010 - 22:08Der er
21 kommentarer og 1 løsning
Udtræk fra database skal ende i array.
Jeg har et udtræk foreach ($_POST [blomst]....der vises som echo $rows["tal"]; i en løkke. Jeg vil meget gerne samle de forskellige $rows["tal"]; i et array som jeg så kan bruge/vise senere. Kan det ikke lade sig gøre?
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Det hænger sådan sammen at jeg samler op fra en mængde checkbokse-og så kalder jeg en tabel. Resultatet herfra vil jeg gerne kunne bruge senere. if (isset($_POST['blomst'])) { foreach($_POST['blomst'] as $kud) {
$ud = New Array(); include "../dat/conn.php";
$foresp = mysql_query("SELECT * FROM bi WHERE navn = '$kud'") or die (mysql_error()); while ($rows=mysql_fetch_assoc($foresp)){
Du gør det forkert Du laver først array'et i din foreach. Og du includer også i din foreach. Og så er det: $ud = array();
Utestet:
if (isset($_POST["blomst"])) { $find = array();
foreach($_POST["blomst"] as $kud) { $find[] = $kud; }
include "../dat/conn.php";
$sql = "SELECT * FROM bi WHERE navn IN ('".implode("','",$find)."')"; // Hvis værdi af "blomst" er et tal, skal der ikke bruges ' omkring værdien i query
$foresp = mysql_query($sql) or die (mysql_error());
Så langt så godt, tak. Jeg har brugt flg. som virker ok(næsten)
$foresp = mysql_query("SELECT * FROM bi WHERE navn = '$k'") or die (mysql_error()); if(mysql_num_rows($foresp) > 0) { $ud = array(); while ($rows=mysql_fetch_assoc($foresp)){
echo "<br />".$rows["navn"]; echo " kr."; echo $rows["kr"]; $ud[] = $rows["kr"]; } echo $ud[0]; }else{ echo "Ingen rows fundet i db ud fra request!"; } men jeg får echo $ud[0] ud for hver linie: navn kr. 39.oo39.00 og alle pladser og ikke kun nr.[0]. til gengæld ingen hvis jeg skriver echo $ud[];og ingen side hvis jeg undlader at echo $ud[o], så der er noget der er lidt løst i det.
Men jeg vil gerne benytte arrayet til at lægge tallene sammen og smide det i min $_SESSION['pris'] på en eller anden måde.
Der er desværre kludder i det.Den viser de forskellige "varer" til "kr" der er valgt og efter står prisen igen. Den tæller ikke noget op.
<?php if($_POST['op'] == "ds"){ echo "Du har denne dato:<br>{$_SESSION['gin']}"; echo "<BR>Valgt {$_SESSION['nin']}"; echo "<BR>Der jo koster{$_SESSION['pris']}"; echo "<BR>og kan få denne tid:{$_SESSION['mas']}<BR>Ekstra tilbehør:<BR>";
if (isset($_POST['varer'])) { foreach($_POST['varer'] as $kud) {
include "../dat/conn.php";
$foresp = mysql_query("SELECT * FROM bi WHERE navn = '$kud'") or die (mysql_error());
$kr_ialt = 0; while ($rows=mysql_fetch_assoc($foresp)){
Tusind tak hvor har du bare ret;) Nu er det så bare at min sessionPris fra forgående side som osse bliver vist her, gerne skulle optælles med kr_ialt og helst vise den nye sammentælling. altså øverst vise kr. fra $_SESSION['pris'] dernæst prisen kr_ialt og sidst på siden $_SESSION['pris']+ kr_ialt som så er den nye gældende $_SESSION['pris']
Så du må gerne lægge et svar. Måske ved du også hvordan man takler; tryk på enter- Jeg har jo en side hvor du kan vælge mellem flere forskellige ting via submitknapper. Kan jeg sætte en "fejlmelding" op hvis man trykker på enter "du skal vælge en mulighed"?
Nu har jeg forsøgt vildt at sætte et array op indeholdende alle $rows["navn"] på den måde du har lært mig: først definere uden foreach og så videre. Men kan ikke få det til at virke. Jeg skulle gerne få $rows["navn"] gjort til en session osse. <?php if($_POST['op'] == "ds"){ echo "Du har denne dato:<br>{$_SESSION['gin']}"; echo "<BR>Valgt {$_SESSION['nin']}"; echo "<BR>Der jo koster{$_SESSION['pris']}"; echo "<BR>og kan få denne tid:{$_SESSION['mas']}<BR>Ekstra tilbehør:<BR>";
$tilbud = array();
if (isset($_POST['varer'])) { $kr_ialt = 0; foreach($_POST['varer'] as $kud) {
include "../dat/conn.php";
$foresp = mysql_query("SELECT * FROM bi WHERE navn = '$kud'") or die (mysql_error());
while ($rows=mysql_fetch_assoc($foresp)){
echo "<br />".$rows["navn"];
$tilbud[] = $rows["navn"];
echo " kr."; echo $rows["kr"];
$kr_ialt += $rows["kr"];
} } } } $_SESSION["pris"] += $kr_ialt;
echo "ha ha ha"; echo "<BR>Der jo nu koster{$_SESSION['pris']}"; echo $tilbud[]; ?>
Ved ikke om du hænger på endnu men det er mit første script med sessions overhovedet og det virker desværre ikke rigtigt. jeg har ellers forsøgt at gøre nogenlunde som du har forklaret. Skal jeg mon oprette spg. igen?
<?php if($_POST['op'] == "ds"){
include "../dat/conn.php"; $find = array();
echo "Du har denne dato:<br>{$_SESSION['gin']}"; echo "<BR>Valgt {$_SESSION['nin']}"; echo "<BR>Der jo koster{$_SESSION['pris']}"; echo "<BR>og kan få denne tid:{$_SESSION['mas']}<BR>Ekstra tilbehør:<BR>";
if (isset($_POST['varer'])) { $kr_ialt = 0; $_SESSION["navne"] = array(); foreach($_POST['varer'] as $kud) {
$find[] = $kud;
$foresp = mysql_query("SELECT * FROM bi WHERE navn IN ('".implode("','",$find)."')") or die (mysql_error());
Jeg venter lige med at få $_SESSION[navne] på før jeg kan få det her til at funke. Det må være de checkboxe jeg sender fra Er der ikke noget med at de ikke må hedde det samme? jeg kalder jo dem alle "varer" <?php include "../dat/conn.php";
$foresp = mysql_query("SELECT * FROM bi") or die (mysql_error()); while ($rows=mysql_fetch_assoc($foresp)){
echo "<input type='checkbox' name='varer' value ='"; echo $rows["navn"];
echo "'><br>";
} ?> Og så har jeg dette der ikke virker: <?php if($_POST['op'] == "ds"){ include "../dat/conn.php";
echo "Du har denne dato:<br>{$_SESSION['gin']}"; echo "<BR>Valgt {$_SESSION['nin']}"; echo "<BR>Der jo koster{$_SESSION['pris']}"; echo "<BR>og kan få denne tid:{$_SESSION['mas']}<BR>Ekstra tilbehør:<BR>";
if (isset($_POST['varer[]'])) { $kr_ialt = 0; $find = array();
foreach($_POST['varer[]'] as $kud) {
$find[] = $kud; }
$foresp = mysql_query("SELECT * FROM bi WHERE navn IN ('".implode("','",$find)."')") or die (mysql_error());
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.