# Shkenca > Informatikë dhe Internet > Arti i programimit >  PHP/MySQL: Program per inventarin e magazinave

## Butrinti

Kam ndertuar nje database ne Mysql me tre tabela . Ne njeren jane te dhenat mbi produktet qe ndodhen momentalisht ne magazine (emrat e ketyre magazinave i kam vendosur ne nje tabele tjeter). Pra ne tabelen me emer produktet kam 5 kolona tekstualisht produkt_id, magazin_id , produktname , quanita dhe date . Kjo database manipulohet me PHP script por p.sh kolona 'quantita' perfaqeson nje numer variabel produktesh >0 pra si mund te eleminohet vetem nje produkt nga 6 qe jane momentalisht te mbeten 5 pra jo qe gjithe linja te eleminohet ne kolone . Gjithashtu deshiroj qe p.sh ku kam tabelen afito (pra produktet qe jepen ne qira) me nje link insert te dergohen ne kete tabele mbas jane selektuar ne tabelen 'produkt' .




> Per te paren duhet te perdoresh dicka te tille. 
> 
> UPDATE produktet SET quantita=(quantita - 1) WHERE produkt_id='$id'
> 
> $id eshte numri i identifikimit te produktit qe kerkon vizitori. 
> 
> Pasi te besh SELECT nje produkt, ne php do kesh nje array me informacionin e atij produkti. psh: produkti['produkt_id'], produkti['quantita'], produkti['produkt_name'] ... etj. 
> 
> Krijo nga nje variabel per te gjitha gjerat ne array. 
> ...


O Edo faleminderit per pergjigjen me poste :

Problemi eshte qe une kam instaluar kete aplikacionin Databik pra nuk po mundem dot qe te modifikoj me kete kodin qe me dergove.

----------


## edspace

Nuk eshte nevoja te perdoresh databik. Kodi qe te dhashe une perdoret direkt me Mysql. 

Ketu ke nje shembull. 

Kodi PHP:



```

<?php 

$db = mysql_connect("localhost", "username", "password"); 

mysql_select_db("emri_i_database",$db); 

$result = mysql_query("SELECT * FROM produktet",$db); 

$produkti = mysql_fetch_array( $result ); 

echo $produkti['produkt_name']; 

?>


```

Kodi me lart do nxjerre emrin e produktit te pare.
Per mendimin tim nuk eshte nevoja te perdoresh databik. Php.net dhe mysql.com kane plot informacion se si ti perdoresh funksionet. Gjithashtu ka plot libra falas ne internet.

----------


## Butrinti

Ate bera nuk e installova kete aplikacionin Databik. Po kam hasur ne disa probleme . Ne database kam tre tabella :
* magazina*
_magazino_id_             smallint(6)
_magazinonome _        varchar(50)
                  primary key magazino_id
*prodotti*
_prodotti_id
magazino_id
prodottonome
quantita_
   primary key prodotti_id

tabela tjeter eshte 
*afito*
.........

*Tani problemi qendron  ketu : 
deshiroj qe te 'insert' te dhenat ne tabelen 'prodotti' me ane te nje formulieri  ku ne formulier te dale automatikisht (ne html) emri i magazis (pra nga lista e llojeve te magazive qe ndodhen ne tabelen magazino te cilat jane regjistruar me pare me ane te nje formulieri tjeter) dhe pastaj une te shtyp emrin e 'produktit' dhe 'quantita'  qe deshiroj .
me sakte ne link :*http://www.protezionecivileanabruzzi.it/magazino/insert.php

----------


## Gepardi

Shiko kodin php :



```

<?
mysql_connect("localhost", "username", "password"); 
mysql_select_db("emri_i_database");


if (!isset($submit)) {
$sql = "SELECT * FROM magazina WHERE magazino_id=$id"; 
// $id do ta kalosh nepermjet url ose me ndonje form dmth me ane te POST ose GET psh insert.php?id=1
        if (!$result = mysql_query($sql)) {
                echo "Errore " . mysql_error();
           }
$row = mysql_fetch_assoc($result);
$magazinonome = $row['magazinonome'];
echo <<<END
<html>
<head>
</head>

<body>
Mbush formulierin dhe shtyp 'invia queri' 
Formular ab:
<form action = "$PHP_SELF" method = "post">
    <input name="mn" value="$magazinonome"> Magazinonome<p>
    <input name="pn"> Prodottonome<p>
    <input name="qn"> Quantita<p>
    <input type="hidden" name="magazino_id" value="$id">
     <input type="submit" name="gesendet">
    <input type="reset">
</form>

Alle Datensätze <a href="selekt.php">anzeigen</a>
</body>
</html>
END;

}
else {
$sql = "INSERT INTO  prodotti (magazino_id, prodottonome, quantita) VALUES('$magazino_id', '$pn', '$qn');";

     if (!$result = mysql_query($sql)) {
echo "Errore " . mysql_error();
        }
    else {
echo "<h2 align='center'>Artikulli u shtua me sukses</h2>";
         }
}

mysql_close();

?>

```

*Shenim*:
Fusha(field) prodotti_id tek tabela prodotti duhet te jete AUTO INC

----------


## edspace

Kodi i Gepardit nuk e lejon personin qe te zgjedhe emrin e magazines ku do hidhet produkti prandaj i bera disa ndryshime dhe i kam shoqeruar me komente. 
Faqja hapet fillimisht me formularin qe do kete listen e magazinave te renditura sipas emrit, kutine per emrin e produktit, kutine per sasine e produkteve dhe dy butonat per te derguar ose anulluar formularin. Perdoruesi zgjedhe nje prej magazinave, shkruan emrin e produktit, sasine, dhe shtyp butonin "submit". 

Kodi me poshte e kupton qe personi e ka plotesuar formularin, shton produktin e ri ne tabelen e produkteve, nxjerr nje mesazh qe produkti u shtua me sukses dhe nxjerr perseri formularin bosh qe perdoruesi te vazhdoje te shtoje produkte te reja. Magazina qe u perdor heren e pare, zgjidhet automatikisht heren e dyte. 
Kodin nuk e kam testuar por nqs ka ndonje gabim te vogel, besoj se nuk do kesh probleme ta rregullosh. 

Here tjeter nuk do lejohen pyetje ne gjuhe te huaja, prandaj mundohu pak me shume dhe shkruaj Shqip. 




```

<html> 
<head> 
</head> 

<body> 

<?php 

@mysql_connect("localhost", "username", "password");
@mysql_select_db("emri_i_database") or die("nuk mund te lidhem me database");

if (isset($_POST['shto'])){ 
    $sql = @mysql_query("INSERT INTO  prodotti (magazino_id, prodottonome, quantita) VALUES('$magazino_id', '$pn', '$qn'") 
            or die("gabim ne shtimin e produktit");

    echo 'Produkti ' . $pn . ' u shtua me sukses.<br><br>';
}

//marrim te gjitha magazinat
$sql = @mysql_query("SELECT * FROM magazina ORDER BY magazinonome") or die("gabim me magazinat");

//formojme listen magazinave per te zgjedhur
$select = '';
while ( $rreshti = @mysql_fetch_array($sql)){
    if($_POST['magazino_id'] == $rreshti['magazino_id'])
        $select = $select.'<option selected value="'.$rreshti['magazino_id'].'">'.$rreshti['magazinonome'].'</option>';
    else
        $select = $select.'<option value="'.$rreshti['magazino_id'].'">'.$rreshti['magazinonome'].'</option>';
}

//nxjerrim formularin
echo <<<END
<p>Mbush formularin dhe shtyp 'invia queri' 
Formular ab: 
<form action = "$PHP_SELF" method = "post"> 
    <select name="magazino_id">$select</select> Magazinonome<p> 
    <input name="pn"> Prodottonome<p> 
    <input name="qn"> Quantita<p> 
     <input type="submit" name="shto"> 
    <input type="reset"> 
</form>
END;

//mbyllim database
mysql_close(); 

?> 

Alle Datensätze <a href="selekt.php">anzeigen</a> 
</body> 
</html>

```

----------


## Butrinti

*Nuk nxjerr listen me emrat e magazive :
http://www.protezionecivileanabruzzi...no/insert2.php*

me poshte scripti 

<html> 
<head> 
<?php 

@mysql_connect("fgffgdfggfgfdfdfdf.it", "pppooo", "Pro123Dx"); 
@mysql_select_db("prozzidb") or die("nuk mund te lidhem me database"); 

if (isset($_POST['shto'])){ 
    $sql = @mysql_query("INSERT INTO  prodotti (magazino_id, prodottonome, quantita) 

VALUES('$magazino_id', '$pn', '$qn'") 
            or die("gabim ne shtimin e produktit"); 

    echo 'Produkti ' . $pn . ' u shtua me sukses.<br><br>'; 
} 

//marrim te gjitha magazinat 
$sql = @mysql_query("SELECT * FROM magazino ORDER BY magazinonome") or die("gabim me 

magazinat"); 

//formojme listen magazinave per te zgjedhur 
$select = ''; 
while ( $rreshti = @mysql_fetch_array($sql)){ 
    if($_POST['magazino_id'] == $rreshti['magazino_id']) 
        $select = $select.'<option selected 

value="'.$rreshti['magazino_id'].'">'.$rreshti['magazinonome'].'</option>'; 
    else 
        $select = $select.'<option 

value="'.$rreshti['magazino_id'].'">'.$rreshti['magazinonome'].'</option>'; 
} 

//nxjerrim formularin 
//echo <<<END 


//mbyllim database 
mysql_close(); 

?> 
</head>

<body>

<p>Mbush formularin dhe shtyp 'invia queri' 
Formular ab: 
<form action = "insert2.php" method = "post"> 
    <select name="magazino_id">$select</select> Magazinonome<p> 
    <input name="pn"> Prodottonome<p> 
    <input name="qn"> Quantita<p> 
     <input type="submit" name="shto"> 
    <input type="reset"> 
</form> 
END; 



Alle Datensätze <a href="selekt.php">anzeigen</a> 

</body> 
</html> 

__________________

----------


## edspace

Nuk e nxjerr sepse ti e ke ndryshuar skriptin dhe $select e ke nxjerre jashte PHP. 
Perdor versionin qe te kam dhene dhe ndrysho vetem pjesen qe lidhet me database.

----------


## Butrinti

Me jep nje error te tille :
Parse error: parse error, unexpected T_SL, expecting ',' or ';' in D:\micladigital.it\protezionecivileanabruzzi.it\ma  gazino\insert5.php on line 36

----------


## Butrinti

linea 35   //nxjerrim formularin 
linea 36     echo <<<END 
linea 37    <p>Mbush formularin dhe shtyp 'invia queri'

----------


## Orbital

Nuk pata kohe ti lexoj postimet e meparshme por ne kete kodin e fundit sic tha edhe edspace, variabla $select nuk po printohet. Dmth fute ate ne php tag-a. poashtu pjesen per insertim pate gabim sintaksor te SQL. Pastaj variablat qe i poston, gjithmone perdore $_POST "enviroment variablen qe eshte global gjithmone". Nese ketu kane qasje te huajt... kujdesu per vrimat e ashtuquajtura sql-injections

Ja ketu kodi i edituar me gjerat e permendura me larte. 


```
<?php

@mysql_connect("fgffgdfggfgfdfdfdf.it", "pppooo", "Pro123Dx");
@mysql_select_db("prozzidb") or die("nuk mund te lidhem me database");

if (isset($_POST['shto'])){
  $sql = @mysql_query("INSERT INTO prodotti (magazino_id, prodottonome, quantita)
  VALUES('$_POST[magazino_id]', '$_POST[pn]', '$_POST[qn]')") or die("gabim ne shtimin e produktit");

  echo 'Produkti ' . $_POST['pn'] . ' u shtua me sukses.<br><br>';
}

//marrim te gjitha magazinat
$sql = @mysql_query("SELECT * FROM magazino ORDER BY magazinonome") or die("gabim me magazinat");

//formojme listen magazinave per te zgjedhur
$select = "";
while ( $rreshti = @mysql_fetch_array($sql)){
  if($_POST['magazino_id'] == $rreshti['magazino_id'])
    $select = $select."<option selected value='".$rreshti['magazino_id']."'>".$rreshti['magazinonome']."</option>";
  else
    $select = $select."<option value='".$rreshti['magazino_id']."'>".$rreshti['magazinonome']."</option>";
}

//nxjerrim formularin
//echo <<<END


//mbyllim database
mysql_close();

?>
</head>

<body>

<p>Mbush formularin dhe shtyp 'invia queri'
Formular ab:
<form action = "insert2.php" method = "post">
<select name="magazino_id"><? echo $select; ?></select> Magazinonome<p>
<input name="pn"> Prodottonome<p>
<input name="qn"> Quantita<p>
<input type="submit" name="shto">
<input type="reset">
</form>
END;
Alle Datensätze <a href="selekt.php">anzeigen</a>

</body>
</html>
```

----------


## edspace

E hodha kodin ne nje skedar qe te mos kesh probleme me formatimin e forumit. 
Shkarkoje me poshte dhe ndryshoje prapashtesen nga TXT ne PHP. 
Problemi me  echo <<< END eshte se nuk duhet te kete asnje vend bosh para ose mbrapa.

----------


## Butrinti

*E provova perseri me kete kodin qe me dergove por nuk ben insert . Emrat e magazinave i nxjerr ne formulier  :

http://www.protezionecivileanabruzzi...no/insert6.php*

----------


## edspace

Kodi nuk punon sepse ke gabim me tabelat e database. 

*magazina*
magazino_id smallint(6) <- Kjo duhet të jetë auto_increment
magazinonome varchar(50)


*prodotti*
prodotti_id <- Kjo duhet te jete auto_increment
magazino_id
prodottonome
quantita

Per te vendosur auto_increment, futu ne phpMyAdmin dhe tek kutia "extra" zgjidh auto_increment. Nqs cdo gje eshte ne rregull, tabela e magazinave do duket keshtu. 

1 Roma
2 Tirana
3 Milano
4 Firenze


Ti thua qe i ke vene si smallint por ne html dalin si tekst.

ps: Ne Shqip formulier = Formular. Fol Shqip!

----------


## Butrinti

Nuk eshte aty gabimi :

----------


## edspace

Atehere ke ndryshuar kodin tim. 



```
<select name="magazino_id">
<option value="Firence">Firence</option>
<option value="Milano">Milano</option>
<option value="Roma">Roma</option>
<option value="Tirana">Tirana</option>
</select>
```

Të gjitha value="..." më lart duhet të kenë një numër ndërsa ty të dalin emrat e magazinave. Unë në kod kam përdorur magazino_id dhe ajo duhet të nxjerrë një numër 0,1,2,3,4....

----------


## Butrinti

*magazino*
Campo                   Tipo     Attributi Null Predefinito               Extra         Azione 
   magazino_id          int(6)     No                                      auto_increment              
   magazinonome    varchar(50)   No                   
 Seleziona tutti  /  Deseleziona tutti     Se selezionati:       

*prodotti*

Campo  Tipo Attributi Null Predefinito Extra Azione 
   prodotti_id  smallint(6)   No     auto_increment              
   magazino_id  smallint(6)   No   0                
   prodottonome  varchar(50)   No                   
   quantita  int(11)   No   0                
 :

----------


## Butrinti

<html> 
<head> 
</head> 

<body> 

<?php 

@mysql_connect("mysql.protezionecivileanabruzzi.it  ", "rrrrr", "rrrrr"); 
@mysql_select_db("prozzidb") or die("nuk mund te lidhem me database"); 

if (isset($_POST['shto'])){ 
    $sql = @mysql_query("INSERT INTO  prodotti (magazinonome, prodottonome, quantita) VALUES('$magazinonome', '$pn', '$qn'")
            or die("gabim ne shtimin e produktit"); 

    echo 'Produkti ' . $pn . ' u shtua me sukses.<br><br>'; 
} 

//marrim te gjitha magazinat 
$sql = @mysql_query("SELECT * FROM magazino ORDER BY magazinonome") or die("gabim me magazinat"); 

//formojme listen magazinave per te zgjedhur 
$select = ''; 
while ( $rreshti = @mysql_fetch_array($sql)){ 
    if($_POST['magazino_id'] == $rreshti['magazino_id']) 
        $select = $select.'<option selected value="'.$rreshti['magazinonome'].'">'.$rreshti['magazinonome'].'</option>'; 
    else 
        $select = $select.'<option value="'.$rreshti['magazinonome'].'">'.$rreshti['magazinonome'].'</option>'; 
} 

//nxjerrim formularin
echo <<<END
<p>Mbush formularin dhe shtyp 'invia queri'
Formular ab:
<form action = "$PHP_SELF"	 method = "post">
    <select name="magazino_id">$select</select> Magazinonome<p>
    <input name="pn"> Prodottonome<p>
    <input name="qn"> Quantita<p>
     <input type="submit" name="shto">
    <input type="reset">
</form>
END;

//mbyllim database 
mysql_close(); 

?> 

Alle Datensätze <a href="selekt.php">anzeigen</a> 
</body> 
</html>

----------


## Butrinti

*e ndryshova por perseri nuk funksionon*
http://www.protezionecivileanabruzzi...no/insert7.php
<html> 
<head> 
</head> 

<body> 

<?php 

@mysql_connect("mysql.protezionecivileanabruzzi.it  ", "eeee", "eeee"); 
@mysql_select_db("prozzidb") or die("nuk mund te lidhem me database");  

if (isset($_POST['shto'])){ 
    $sql = @mysql_query("INSERT INTO  prodotti (magazino_id, prodottonome, quantita) VALUES('$magazino_id', '$pn', '$qn'") 
            or die("gabim ne shtimin e produktit"); 

    echo 'Produkti ' . $pn . ' u shtua me sukses.<br><br>'; 
} 

//marrim te gjitha magazinat 
$sql = @mysql_query("SELECT * FROM magazino ORDER BY magazinonome") or die("gabim me magazinat"); 

//formojme listen magazinave per te zgjedhur 
$select = ''; 
while ( $rreshti = @mysql_fetch_array($sql)){ 
    if($_POST['magazino_id'] == $rreshti['magazino_id']) 
        $select = $select.'<option selected value="'.$rreshti['magazino_id'].'">'.$rreshti['magazinonome'].'</option>'; 
    else 
        $select = $select.'<option value="'.$rreshti['magazino_id'].'">'.$rreshti['magazinonome'].'</option>'; 
} 

//nxjerrim formularin
echo <<<END
<p>Mbush formularin dhe shtyp 'invia queri'
Formular ab:
<form action = "$PHP_SELF" method = "post">
    <select name="magazino_id">$select</select> Magazinonome<p>
    <input name="pn"> Prodottonome<p>
    <input name="qn"> Quantita<p>
     <input type="submit" name="shto">
    <input type="reset">
</form>
END;

//mbyllim database 
mysql_close(); 

?> 

Alle Datensätze <a href="selekt.php">anzeigen</a> 
</body> 
</html> 
@mysql_connect("mysql.protezionecivileanabruzzi.it  ", "rrrrr", "rrrrr"); 
@mysql_select_db("prozzidb") or die("nuk mund te lidhem me database"); 
...............................................
<html> 
<head> 
</head> 

<body> 

<?php 

@mysql_connect("mysql.protezionecivileanabruzzi.it  ", "prozzidx", "Pro123Dx"); 
@mysql_select_db("prozzidb") or die("nuk mund te lidhem me database");  

if (isset($_POST['shto'])){ 
    $sql = @mysql_query("INSERT INTO  prodotti (magazino_id, prodottonome, quantita) VALUES('$magazino_id', '$pn', '$qn'") 
            or die("gabim ne shtimin e produktit"); 

    echo 'Produkti ' . $pn . ' u shtua me sukses.<br><br>'; 
} 

//marrim te gjitha magazinat 
$sql = @mysql_query("SELECT * FROM magazino ORDER BY magazinonome") or die("gabim me magazinat"); 

//formojme listen magazinave per te zgjedhur 
$select = ''; 
while ( $rreshti = @mysql_fetch_array($sql)){ 
    if($_POST['magazino_id'] == $rreshti['magazino_id']) 
        $select = $select.'<option selected value="'.$rreshti['magazino_id'].'">'.$rreshti['magazinonome'].'</option>'; 
    else 
        $select = $select.'<option value="'.$rreshti['magazino_id'].'">'.$rreshti['magazinonome'].'</option>'; 
} 

//nxjerrim formularin
echo <<<END
<p>Mbush formularin dhe shtyp 'invia queri'
Formular ab:
<form action = "$PHP_SELF" method = "post">
    <select name="magazino_id">$select</select> Magazinonome<p>
    <input name="pn"> Prodottonome<p>
    <input name="qn"> Quantita<p>
     <input type="submit" name="shto">
    <input type="reset">
</form>
END;

//mbyllim database 
mysql_close(); 

?> 

Alle Datensätze <a href="selekt.php">anzeigen</a> 
</body> 
</html>

----------


## edspace

> $sql = @mysql_query("INSERT INTO  prodotti (magazino_id, prodottonome, quantita) VALUES('$magazino_id', '$pn', '$qn'") 
>             or die("gabim ne shtimin e produktit");


Ne kodin me lart mungon nje kllape. Ndryshoje si me poshte. 

$sql = @mysql_query("INSERT INTO  prodotti (magazino_id, prodottonome, quantita) VALUES('$magazino_id', '$pn', '$qn'*)*") 
            or die("gabim ne shtimin e produktit");

----------


## Butrinti

Parse error: parse error, unexpected ')' in D:\micladigital.it\protezionecivileanabruzzi.it\ma  gazino\insert7.php on line 14

plus dhe po te dergoj nje mesazh privat:

----------

