Autor Zpráva
Peter45
Profil
Mam otazku,docital som sa ze je mozne vyberat udaje respektivne spajat z dvoch tabuliek...
Je mozne z troch?alebo viacerych?

Pripajam hned kod:
 $sqlQ = "select * from kosik inner join tovar on kosik.produktid = tovar.id where kosik.cookieid = '" . KosikId() . "' order by tovar.nazov asc";
 


Potreboval by som do tohto zahrnut udaje este z tretej tabulky ale fakt neviem ako na to.Tretia tabulka sa vola: farby a polia v nej: id, produktid, farby.No a potrebujem z tabulka farby vybrat pole farby...neviem ci to staci na pochopenie
radozaj
Profil
SELECT *
FROM kosik
INNER JOIN tovar
  ON kosik.produktid = tovar.id
INNER JOIN tabulka3
  ON tabulka3.stlpec = tovar.tovarovy_stlpec
WHERE kosik.cookieid = 10
ORDER BY tovar.nazov ASC;


Je toho dosť k tomu, aby si tomu rozumel... Prípadne sa ešte niečo spýtaj. Napr. neviem, či bude dobré používať v tom 1. riadku hviezdičku. radšej by som tie stĺpce vypísal, bo sa ti môže stať, že sa budú rovnako volať. Takže ho vypíšeš a premenuješ cez AS
Peter45
Profil
No aj funguje aj nie,,,neviem asi mam dakde chybu...vybara mi aj to co nema hm
radozaj
Profil
Tak najlepšie bude, keď to tu celé rozpíšeš. Teda aspoň štruktúru tých 3 tabuliek a slovne čo to má spraviť... Chyba môže byť hocikde, najskôr zrejme bude v tej klauzule ON.
Peter45
Profil
Skusim sa este spytat,nez to sem prasnem cele...druha moznost vybrat z tabulky kosik dve polia?

Ten kod mi nejak nesiel co si napisal tak som skusal a zrodilo sa toto,no vypisuje aj to co nema...
No a tak teda z kosika vybrat pole "farby"

$sqlQ = "select * from kosik inner join tovar on kosik.produktid = tovar.id INNER JOIN farby ON farby.tovarid = tovar.nazov where kosik.cookieid = '" . KosikId() . "' order by tovar.nazov asc";
 

Ide vlastne o to ze: pri pridani tovaru do kosika sa zapisu udaje a aj dana farba a tu farbu mi nezapisuje do objednavky...
radozaj
Profil
A máš v poriadku, že
ON farby.tovarid = tovar.nazov
, čiže farba je viazaná na na tovar cez názov tovaru? Nechcel si tam dať
ON farby.tovarid = tovar.id
radozaj
Profil
Stačí ak sem hodíš štruktúru tabuľky, to je napr. že:
tovar(id INTEGER, nazov VARCHAR(20))
kosik(productid INTEGER, cookieid INTEGER)
farby(tovarid INTEGER)

čiže tabuľka(stlpec1 typ, stlpec2 typ, stlpec3 typ)...

A potom napíš slovne, čo chceš vypísať.
Peter45
Profil
FARBY- id-int(11),tovarid-(int11),farby-text.
KOSIK- id-(int11),cookieid-varchar(50),produktid-int(11),pocet-int(11),velkost-text,farby-text.
TOVAR ma hodne poli...ale farby sa do tabulky tovar nezapisuju,pri editacii tovaru zapisujem farby podla idu to tabulky farby.

Odkaz
pripajam scren kosika,ked hodim daco na stranke do kosika tak mo pekne zapise danu farby ale do objednavky ju neposle...pripojim este kod
Peter45
Profil
<?php


// if (!$logged) @mysql_query("delete from kosik where cookieid = '" . KosikId() . "' ");


  switch($_GET["action"])
    {
      case "add":
    {
//      addprod($_GET["id"], $_GET["pocet"]);
      ukazkosik();
    break;
    }
      case "update":
    {
//      updateprod($_GET["id"], $_GET["pocet"]);
      ukazkosik();
    break;
    }
      case "remove":
    {
//      removeprod($_GET["id"]);
      ukazkosik();
    break;
    }
	case "objednat":
    {
	 $totalcena=ukazkosik();
	 if (!$totalcena) { error ("Košík prázdny"); break; }
	include "objednat.php";

    break;
    }
	case "odoslat":
	{

if (!$meno || !$ulica || !$mesto || !$psc):
error("Nevyplnili ste všetky potrebné údaje", "");
include "objednat.php";
$stop=true;
endif;

if (!$stop):
	$textmail=objednavka_tabulka();
	

	$ok=mailer ("email", $textmail, "Objednavka z .sk", "$shopreplyaddress");
	$ok=mailer ($email, $textmail, "Objednavka z .sk", "$shopreplyaddress");
	
	 
    removeall();
	$suma=$sumauhrada;
	message("Objednávka odoslaná", "<a href=\"http://www.sk\">Pokračovať môžete tu</a>");
endif;

	break;
	}
      default:
    {
      ukazkosik();
    }
  }




function createRandomVariabilny() {

    $chars = "0123456789";
    srand((double)microtime()*1000000);
    $i = 0;
    $rpass = '';

    while ($i <= 16) {
		$num = rand(0,10);
        $tmp = substr($chars, $num, 1);
        $rpass = $rpass . $tmp;
        $i++;
    }
    return $rpass;
}



  function  objednavka_tabulka()
{

global $meno,  $ulica, $mesto, $psc, $email,  $telefon, $fax, $platba, $podmienky, $dorucenie, $poznamka, $sVariabilny, $sUser, $sSkupina, $sUserID;


$casnow=Time();

 $totalcena = 0;
// $sqlQ = "select * from kosik inner join tovar on kosik.produktid = tovar.id where kosik.cookieid = '" . KosikId() . "' order by tovar.nazov asc";
  //$sqlQ = "select * from kosik inner join tovar on kosik.produktid = inner join kosik on kosik.farby = tovar.nazov where kosik.cookieid = '" . KosikId() . "' order by tovar.nazov asc";
 
 //$sqlQ = "select * from kosik inner join tovar on kosik.produktid = tovar.id where kosik.cookieid = '" . KosikId() . "' order by tovar.nazov asc";
 
 $sqlQ = "select * from kosik inner join tovar on kosik.produktid = tovar.id INNER JOIN farby ON farby.tovarid = tovar.nazov where kosik.cookieid = '" . KosikId() . "' order by tovar.nazov asc";
 
 $result = mysql_query($sqlQ);


$textstart = "<h1>Objednavka</h1>";
$texttable =  "<table width=\"100%\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\"> \n";

$texttable = $texttable . "<tr>

<td>Nazov</td>
<td>Veľkost</td>
<td>Farba</td>
<td>Cena s DPH</td>
<td>Kusov</td>
<td>Celkom</td>

</tr>";

//
while($row = mysql_fetch_array($result))


          {
			if ($row["akcia"] && $row["cena2"]) $row["cena"]=$row["cena2"];

		
            $totalcena += $row["pocet"] * ($row["cena"]/100*(100-$row["zlava"]))*1.19;

$texttable = $texttable . "     
<tr>
        <td>$row[nazov]</td> <td>" . $row["velkost"] . "</td><td> $row[farby]</td>
        <td>".($row[cena]/100*(100-$row["zlava"]))*1.19." &euro;<br />".round(($row[cena]/100*(100-$row["zlava"]))*1.19*30.1260,2)." Sk</td>
       
	    	<td>$row[pocet]</td>
        <td>";
		$celkom=$row["pocet"] * ($row["cena"]/100*(100-$row["zlava"]))*1.19 ; 
		$celkomeuro=round($row["pocet"] * ($row["cena"]/100*(100-$row["zlava"]))*1.19*30.1260,2);
		$texttable.=" $celkom &euro; <br > $celkomeuro Sk</td>
		</tr>";
		
		
		$kurzeuro=$_SESSION["sEuro"];
		
		$sql=" INSERT INTO objednavky VALUES ('', '$row[id]',  '$row[nazov]', '$row[velkost]' ,  '$row[pocet]', '$celkom', '$meno', '$farby', '$ulica',  '$mesto', '$psc', '$email', '$telefon', '$kurzeuro', '$platba', '$dorucenie', '$poznamka','$casnow', '0', '$sUser', '$koefsql',  '$sVariabilny'  )";

$ins = MySQL_Query($sql);
if (!$ins) echo "CHYBA ".mysql_error();
}

$texttable.="</table>";
		


$totalcenadph=round($totalcena,2);
$totalcenadpheuro=round($totalcena/$_SESSION["sEuro"],2);


$textend = "<br>
Cena spolu: <strong>$totalcenadph &euro; </strong> s DPH + $platba $dorucenie <br><br>\n

Meno: $meno<br>\n
Adresa: $ulica<br>\n
Mesto: $mesto <br>\n
PSC: $psc<br><br>\n\n
Email: $email<br>\n
Telefon: $telefon <br>\n
Poznamka: $poznamka<br><br>
\n\n";

				
				


$text = $textstart. $texttable. $textend; 

return $text;

 
}

  function ukazkosik()
  {
  global $sSkupina,$euro;


?>
radozaj
Profil
No, neviem, či to pomôžem, ale na riadku 131 píšeš, že:
<?php
        <td>$row[nazov]</td> <td>" . $row["velkost"] . "</td><td> $row[farby]</td>
?>

neviem, ale myslím si, že premennú farby nemáš. Či si skôr nechcel čítať tabuľky, čiže z apostrofmi alebo úvadzovkami:
<?php
        <td>$row[nazov]</td> <td>" . $row["velkost"] . "</td><td> $row['farby']</td>
?>
Peter45
Profil
Mal som tam aj uvodzovky aj neviem co a neslo to...no stal sa zazrak ani neviem co som spravil a facha to...dakujem za cas

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: