Ispis iz baze

problem je ovakav imam select za odabir namirnice iz baze i kada ju odaberem nemogu iz baze iščitati koji je id odabrane namirnice, u nastavku slijedi kod, a greška koju mi izbacuje je

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in unos_u_recept.php on line 89

zašto ne staviš

Ime namirnice ????

ne razumijem baš što želiš reći. meni treba upit na bazu gdje će izvući id_namirnice koja je odabrana u select-u.

Imas gresku u query-u:

<select multiple="multiple" name="namirnicaodabir[]">
                                <?php
                                $upit = ("SELECT * FROM namirnice");
                                $rezultat = mysql_query($upit);
                                while ($red=mysql_fetch_array($rezultat))

                                {?>
                                <option><?php echo $red['ime_namirnice']; ?></option>
                                <?php } ?>
                            </select>

$namirnica = $_POST['namirnicaodabir'];
                $brojnamirnica = count($namirnica);

                    for ($i=0; $i < $brojnamirnica ; $i++) 
                    { 
                        $nazivnamirnice = $namirnica[$i];
                        $ime=mysql_real_escape_string($nazivnamirnice);

                        $sql_idnam = "SELECT * FROM namirnice WHERE ime_namirnice='".$ime."'"; // OVDJE JE BILA GRESKA
                        $rezultat = mysql_query($sql_idnam);

                        $red=mysql_fetch_array($rezultat);    //ovo je linija 89;
                      
                        $id_nam=$red['id_namirnice'];
                      
                        echo $nazivnamirnice;
                        $sql_upit = "INSERT INTO recipes_groceries VALUES ('','$id_rec','$id_nam','')";

Creatif pita zašto nisi koristio umjesto:
naziv namirnice
ovo
naziv namirnice

Želim ti reći da ti nije potreban upit na bazu nakon subitanja forme ako u option imaš atribut value gdje bi mogao pospremiti id namirnice. Tim načinom bi nakon slanja forme dobio id odabranih namirnica, pa bi izbjegao drugi upit na bazu.

Dakle nešto ovako

<span class="syntaxhtml"><br />$upit&nbsp;=&nbsp;("SELECT&nbsp;*&nbsp;FROM&nbsp;namirnice");<br />$rezultat&nbsp;=&nbsp;mysql_query($upit);<br /><br /><select&nbsp;multiple="multiple"&nbsp;name="namirnicaodabir[]"><br />&nbsp;&nbsp;&nbsp;&nbsp;<span class="syntaxdefault"><?php&nbsp;</span><span class="syntaxkeyword">while&nbsp;(</span><span class="syntaxdefault">$red</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">mysql_fetch_array</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$rezultat</span><span class="syntaxkeyword">))&nbsp;:&nbsp;</span><span class="syntaxdefault">?><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<option&nbsp;value="<span class="syntaxdefault"><?php&nbsp;</span><span class="syntaxkeyword">echo&nbsp;</span><span class="syntaxdefault">$red</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'id_namirnice'</span><span class="syntaxkeyword">];&nbsp;</span><span class="syntaxdefault">?></span>"><span class="syntaxdefault"><?php&nbsp;</span><span class="syntaxkeyword">echo&nbsp;</span><span class="syntaxdefault">$red</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'ime_namirnice'</span><span class="syntaxkeyword">];&nbsp;</span><span class="syntaxdefault">?></span></option><br />&nbsp;&nbsp;&nbsp;&nbsp;<span class="syntaxdefault"><?php&nbsp;</span><span class="syntaxkeyword">endwhile;&nbsp;</span><span class="syntaxdefault">?><br /></span></select><br /><br />$namirnica&nbsp;=&nbsp;$_POST['namirnicaodabir'];<br />$brojnamirnica&nbsp;=&nbsp;count($namirnica);<br /><br />for&nbsp;($i=0;&nbsp;$i&nbsp;<&nbsp;$brojnamirnica&nbsp;;&nbsp;$i++)&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;$sql_upit&nbsp;=&nbsp;"INSERT&nbsp;INTO&nbsp;recipes_groceries&nbsp;VALUES&nbsp;('"&nbsp;.&nbsp;$id_rec&nbsp;.&nbsp;"','"&nbsp;.&nbsp;$namirnica[$i]&nbsp;.&nbsp;"')";<br />}<br /></span>

Nisam ovaj kod testirao ali mislim da bi trebao raditi.

P.S. Napomena: Molim te da ovaj kod ne koristiš ovakav kakav je u druge svrhe osim testiranja jer boluje od teških sigurnosnih rupa.

a da probaš ovako?

[php]

<?php $upit = ("SELECT * FROM namirnice"); $rezultat = mysql_query($upit); // ovdje još možeš staviti || die(mysql_error()) while ($red = mysql_fetch_array($rezultat)) { ?> <?php echo $red['ime_namirnice']; ?> <?php } ?> <?php $namirnica = $_POST['namirnicaodabir']; $brojnamirnica = count($namirnica); for ($i = 0; $i < $brojnamirnica; $i++) { $nazivnamirnice = $namirnica[$i]; $ime = mysql_real_escape_string($nazivnamirnice); $sql_idnam = "SELECT * FROM namirnice WHERE ime_namirnice='" . $ime.'"'; $rezultat = mysql_query($sql_idnam); // i ovdje možeš staviti || die(mysql_error()) while ($red = mysql_fetch_array($rezultat)) { $id_nam = $red['id_namirnice']; $sql_upit = "INSERT INTO recipes_groceries VALUES ('', '" . $id_rec . "', '" . $id_nam . "','')"; } } ?>[/php]

hvala svima na savjetima napravio sam da mi u tablicu sprema ime namirnice, a ne id. Na kraju se to riješenje pokazalo boljim.