Diskuze: Projekt, problém s php (bazár)
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.


sahlepik:26.2.2015 20:02
Nasdílej to tady postupně veřejně a vždy se někdo ochotný najde, uvidíš.
Josef Kuchař - Pepa489:26.2.2015 20:05
Dej sem zdrojoví kód pomocí tlačítka vložit zdrojový kód a rádi ti
pomůžeme
<?php
$pripojenie = mysql_connect("localhost", "root", "") or die ("Nepodarilo sa pripojiť") ;
mysql_select_db("bazar") or die ("Nepodarilo sa nájsť databázu") ;
if(isset($_FILES['image']['tmp_name']))
{
$file = ($_FILES['image']['tmp_name']);
if (!isset($file))
echo "Prosím vyber obrázok." ;
else
{
$image = addslashes(file_get_contents ($_FILES['image']['tmp_name']));
$image_name = addslashes ($_FILES['image']['name']);
$image_size = getimagesize($_FILES['image']['tmp_name']);
if ($image_size==FALSE)
echo "Toto nieje obrázok";
else
{
if (!$insert = mysql_query("INSERT INTO inzerat VALUES ('','','','','','','','$image_name','$image')"))
echo " Problem s nahraním obrázku";
else
{
$lastid = mysql_insert_id();
echo "Obrazok bol nahraný <p/>Tvoj obrazok : <p /> <img src=get.php?id=$lastid>";
}
}
}
}
?>
Toto som urobil na obrázok aby sa uploadol z pc do databázy. Teraz ho chcem vypísať na stránke. Mám už urobený takýto formulár, jedná sa o bazár takže rýchlo pochopíte.
<div class="tabulka_inzerat">
<form method="POST" action="pridat_inzerat.php" enctype="multipart/form-data">
<strong>Kategória : </strong>
<select name="kategoria" class="kategoria">
<option value="1"> Automobily </option>
<option value="2"> Elektro </option>
<option value="3"> Hudba,knihy </option>
<option value="4"> Pc,notebooky </option>
<option value="5"> Oblečenie </option>
<option value="6"> Stroje,záhrada </option>
<option value="7"> Umenie,hobby </option>
<option value="8"> Krása,zdravie </option>
<option value="9"> Zvieratá </option>
<option value="10"> Deti </option>
<option value="11"> Služby </option>
<option value="12"> Nábytok </option>
</select>
<br>
<strong> Názov :</strong>
<input type="text" name="nazov" class="nazov"> <br>
<strong>Lokalita : </strong>
<input type="text" name="lokalita" class="lokalita">
<strong>Telefónne číslo : </strong>
<input type="text" name="telefon" class="telefon">
<strong> Cena(euro) :</strong>
<input type="text" name="cena" class="cena"> <br>
<strong> Podrobnosti :</strong> <br>
<input type="text" name="popis" class="popis" > <br>
<input type="file" name="image">
<input type="submit" value="Pridať Inzerát" class="input_prihlasenie" />
<?php
//pripojenie
$pripojenie = mysql_connect("localhost", "root", "") or die ("Nepodarilo sa pripojiť") ;
mysql_select_db("bazar") or die ("Nepodarilo sa nájsť databázu") ;
//vyplnenie (prázdne)
$inzerat = array(
'kategoria' => '',
'nazov' => '',
'cena' => '',
'lokalita' => '',
'telefon' => '',
'fotografia' => '',
'popis' => '',
);
//odosielanie formuláru
if ($_POST)
{
$query = mysql_query('
INSERT INTO inzerat (kategoria, nazov, cena, lokalita, telefon, popis)
VALUES ("'.$_POST['kategoria'].'","'.$_POST['nazov'].'","'.$_POST['cena'].'","'.$_POST['lokalita'].'","'.$_POST['telefon'].'","'.$_POST['popis'].'")'
);
if(!$query)echo mysql_error();
echo('<p>Váš tovar bol úspešne pridaný.</p>');
}
?>
Priložil som obrázok takže to vypadá nejak podobne, na ľavo je ten
formulár potrebujem aby to návštevník proste vyplnil a zobrazilo sa mu to na
ďalšej stránke ktorú je možné na obrázku vidieť na pravo. Takže
akonáhle niekto niečo pridá tak sa tam zjaví nejaký ten nový obdlžníček
ktorý sa bude dať rozkliknúť a zobrazí sa daný inzerát, myslím že
nikomu nemusím predstavovať ako taký bazár vypadá. Taktiež si môžte
všimnúť mám tam registráciu a prihlásenie, to je už funkčné lenže nie
natoľko koľko od toho požadujem, keďže chcem aby návštevník si mohol
založiť účet, prihlásiť sa a tak by mohol upravovať alebo mazať svoje
inzeráty, proste aby to malo taký rád. Dúfam že ma je chápať a že toho
nieje veľa, ale tak som len na strednej a php sa učím len doma a nečakal som
že to bude taká fuška
<?php
$pripojenie = mysql_connect("localhost", "root", "") or die ("Nepodarilo sa pripojiť") ;
mysql_select_db("bazar") or die ("Nepodarilo sa nájsť databázu") ;
if(isset($_FILES['image']['tmp_name']))
{
$file = ($_FILES['image']['tmp_name']);
if (!isset($file))
echo "Prosím vyber obrázok." ;
else
{
$image = addslashes(file_get_contents ($_FILES['image']['tmp_name']));
$image_name = addslashes ($_FILES['image']['name']);
$image_size = getimagesize($_FILES['image']['tmp_name']);
if ($image_size==FALSE)
echo "Toto nieje obrázok";
else
{
if (!$insert = mysql_query("INSERT INTO inzerat VALUES ('','','','','','','','$image_name','$image')"))
echo " Problem s nahraním obrázku";
else
{
$lastid = mysql_insert_id();
echo "Obrazok bol nahraný <p/>Tvoj obrazok : <p /> <img src=get.php?id=$lastid>";
}
}
}
}
?>
Toto som urobil na obrázok aby sa uploadol z pc do databázy. Teraz ho chcem vypísať na stránke. Mám už urobený takýto formulár, jedná sa o bazár takže rýchlo pochopíte.
<div class="tabulka_inzerat">
<form method="POST" action="pridat_inzerat.php" enctype="multipart/form-data">
<strong>Kategória : </strong>
<select name="kategoria" class="kategoria">
<option value="1"> Automobily </option>
<option value="2"> Elektro </option>
<option value="3"> Hudba,knihy </option>
<option value="4"> Pc,notebooky </option>
<option value="5"> Oblečenie </option>
<option value="6"> Stroje,záhrada </option>
<option value="7"> Umenie,hobby </option>
<option value="8"> Krása,zdravie </option>
<option value="9"> Zvieratá </option>
<option value="10"> Deti </option>
<option value="11"> Služby </option>
<option value="12"> Nábytok </option>
</select>
<br>
<strong> Názov :</strong>
<input type="text" name="nazov" class="nazov"> <br>
<strong>Lokalita : </strong>
<input type="text" name="lokalita" class="lokalita">
<strong>Telefónne číslo : </strong>
<input type="text" name="telefon" class="telefon">
<strong> Cena(euro) :</strong>
<input type="text" name="cena" class="cena"> <br>
<strong> Podrobnosti :</strong> <br>
<input type="text" name="popis" class="popis" > <br>
<input type="file" name="image">
<input type="submit" value="Pridať Inzerát" class="input_prihlasenie" />
<?php
//pripojenie
$pripojenie = mysql_connect("localhost", "root", "") or die ("Nepodarilo sa pripojiť") ;
mysql_select_db("bazar") or die ("Nepodarilo sa nájsť databázu") ;
//vyplnenie (prázdne)
$inzerat = array(
'kategoria' => '',
'nazov' => '',
'cena' => '',
'lokalita' => '',
'telefon' => '',
'fotografia' => '',
'popis' => '',
);
//odosielanie formuláru
if ($_POST)
{
$query = mysql_query('
INSERT INTO inzerat (kategoria, nazov, cena, lokalita, telefon, popis)
VALUES ("'.$_POST['kategoria'].'","'.$_POST['nazov'].'","'.$_POST['cena'].'","'.$_POST['lokalita'].'","'.$_POST['telefon'].'","'.$_POST['popis'].'")'
);
if(!$query)echo mysql_error();
echo('<p>Váš tovar bol úspešne pridaný.</p>');
}
?>
Priložil som obrázok takže to vypadá nejak podobne, na ľavo je ten
formulár potrebujem aby to návštevník proste vyplnil a zobrazilo sa mu to na
ďalšej stránke ktorú je možné na obrázku vidieť na pravo. Takže
akonáhle niekto niečo pridá tak sa tam zjaví nejaký ten nový obdlžníček
ktorý sa bude dať rozkliknúť a zobrazí sa daný inzerát, myslím že
nikomu nemusím predstavovať ako taký bazár vypadá. Taktiež si môžte
všimnúť mám tam registráciu a prihlásenie, to je už funkčné lenže nie
natoľko koľko od toho požadujem, keďže chcem aby návštevník si mohol
založiť účet, prihlásiť sa a tak by mohol upravovať alebo mazať svoje
inzeráty, proste aby to malo taký rád. Dúfam že ma je chápať a že toho
nieje veľa, ale tak som len na strednej a php sa učím len doma a nečakal som
že to bude taká fuška
Paco:27.2.2015 14:27
Pokiaľ chceš inzerát zobraziť z databáze do ktorej sa vloží formulárom, musíš k tomu inzerátu nejako pristupovať. Do tohoto pola si pridaj ešte ďalší kľúč URL a doňho budeš ukladať adresu ktorú dáš potom normálne ako odkaz na ten inzerát
//vyplnenie (prázdne)
$inzerat = array(
'url' => '',
'kategoria' => '',
'nazov' => '',
'cena' => '',
'lokalita' => '',
'telefon' => '',
'fotografia' => '',
'popis' => '',
);
Najprv ale samozrejme budeš potrebovať to url nejako získať. Riešil by som to v tomto prípade asi pridaním skrytého inputu do formulára a nastaviť mu nejakú unikátnu hodnotu ktorú by si mohol vygenerovať nejakou funkciou (v DB musí existovať logicky len raz) napr
<input type="hidden" name="url" value="123uniquelink">
,nezabudni to pridať do mysql query. No a potom čo sa to celé úspešne pridá presmerovať na inzerát pomocou toho unique linku napr http://bazar.sk/…t/UniqueLink z databáze...dodatočne budeš ale potrebovať funkciu ktorá bude kontrolovať $_GET pole z adresou, a pokial vnej nájde napr parameter inzerat/uniqueLink tak spustí ďalšiu mysql query ktorá vytiahne z DB konkrétny inzerát ktorý chce užívateľ zobraziť
$query = array('
SELECT kategoria, nazov_inzeratu atď...
FROM inzeraty
WHERE url = ?
', $_GET['uniqueLink']
Teoreticky nejako takto, môj nápad, možno by to šlo spraviť aj
jednoduchšie ale škoda že to nerobíš objektovo, Naučiť sa OOP je vec
ktorú si do budúcna určite pridaj na 'To do list'. Napísal som si to tak
zbežne lebo som v nemocnici a dal som si prácu napísať to na telefóne, keby
mám pc poruke určite by som ti pomohol viac.
Dík milé od teba, ale tak nejako nechápem, normálne to z formuláru
odošlem na inú stránku na bazári, ide o to že práve neviem skombinovať
ten formulár s pridaním obrázku, odosiela mi ich jednotlivo do databázy
takže to urobí proste napríklad dve id a v jednej je obrázok a v druhej je
samotný inzerát ako názov,lokalita atd.. A fakt dík za pomoc, ale ak tak
potrebujem asi podrobnejší návod lebo ja som už z toho debil
Patrik Valkovič:27.2.2015 15:39
Napiš mi do zpráv. Pokud máš skype nebo G+, můžeme to rozebrat. Na
rozepisování jsem krapet líný
Zobrazeno 9 zpráv z 9.