ugrás a tartalomhoz

PHP mysql hiba ''

frst_666 · 2009. Júl. 26. (V), 21.58
Sziasztok!

Segítségeteket szeretném kérni az alábbi problémám miatt.
Van 2 adattáblám, az 1-több kapcsolatot reprezentálja (menupont,tartalom).
A tartalom táblában látjátok milyen objektumok vannak, a menupont táblából ki kell keresnem az elsődleges kulcsot, hogy az 1-több kapcsolatot meg tudjam csinálni.


<?php
print('<form action="kezeles.php" method="post" class="szoveg_sima">
Termék név:<input type="text" name="termnev" maxlength="128">
Készítő:<input type="text" name="keszito" maxlength="64"><br>');
print('Termék ár:<input type="text" name="ar" maxlength="32">
Készítési év:<input type="text" name="ev" maxlength="128"><br>');
print ('Kategória: <select name="menu">');
include("mysql.php");
$mennyi_sql = "select * from menupont order by MenuNev asc";
$mennyi = mysql_query($mennyi_sql) or die (mysql_error());
if (mysql_num_rows($mennyi)>0) {
while ($mennyi_le = mysql_fetch_array($mennyi, MYSQL_ASSOC)) {
$kimenet[]=$mennyi_le;
}
}
mysql_close();
$szam=count($kimenet);
for($i=0; $i < $szam; $i++)
{
print ('<option value="'.($i+1).'">'.$kimenet[$i]['MenuNev'].'</option>');
}
print('</select><br>');
print('<textarea name="leiras" style="width:500px; height:200px;"></textarea><br>
Bemutató kép: <input type="file" name="bemkep"><br>
Diavetitéshez kép1: <input type="file" name="kep1"><br>
Diavetitéshez kép2: <input type="file" name="kep2"><br>
Diavetitéshez kép3: <input type="file" name="kep3"><br>
Diavetitéshez kép4: <input type="file" name="kep4"><br>
Diavetitéshez kép5: <input type="file" name="kep5"><br>
<br><input type="submit" value="Bevitel"><input type="reset" value="Reset"></form>');

include("mysql.php");
$mennyi_sql = "select * from tartalom order by Nev asc";
$mennyi = mysql_query($mennyi_sql) or die (mysql_error());
if (mysql_num_rows($mennyi)>0) {
while ($mennyi_le = mysql_fetch_array($mennyi, MYSQL_ASSOC)) {
$kimenet2[]=$mennyi_le;
}
mysql_close();
}
$szam2=count($kimenet2);
print('<table>');
for($i2=0; $i2 < $szam2; $i2++)
{print('<tr><td>');
print ('<a href=index.php?id='.$kimenet2[$i2]['MenuID'].'&art='.$kimenet2[$i2]['TartalomID'].'>'.$kimenet2[$i2]['Nev'].'</a>'.'<br><br>');
print($kimenet2[$i2]['Leiras']);
print ('</td><td>');
print ('</td><td><img src="'.$kimenet2[$i2]['TartalomID'].'.jpg" width=160px; height=120px;>');
print('</td></tr>');

}
print('</table>');
?>

Ez kezeli le:

if(isset($_POST['termnev']) && !empty($_POST['termnev']))
{
$Termnev=$_POST['termnev'];
$Keszito=$_POST['keszito'];
$Ar=$_POST['ar'];
$Ev=$_POST['ev'];
$Menu=$_POST['menu'];
$Leiras=$_POST['leiras'];
$mennyi_sql = "select MenuID from menupont where MenuNev=".$Menu;
$mennyi = mysql_query($mennyi_sql) or die (mysql_error());
if (mysql_num_rows($mennyi)>0) {
while ($mennyi_le = mysql_fetch_array($mennyi, MYSQL_ASSOC)) {
$menukimenet[]=$mennyi_le;
}
}
$be = "insert into tartalom (MenuID,Nev,Leiras,Keszito,KeszitesEv,Ar,KirakasDatum) values (".$menukimenet[0].",\"".$Termnev."\",\"".$Leiras."\",\"".$Keszito."\",\"".$Ev."\",\"".$Ar."\",\"".date("Y-m-d")."\")";
$bebe = mysql_query($be) or die(mysql_error());
mysql_close();
}
?>
a hibaüzenet a következő:
Incorrect integer value: '' for column 'MenuID' at row 1

Észrevételem szerint nem képes visszaadni értéket az első lekérdezés, csak ezt ''.
Előre is köszönöm szépen a segítséget!!!!
És minden jót kíánok.
 
1

Észrevételek

bendesoft · 2009. Júl. 27. (H), 00.57
Két helyen is hibát vélek felfedezni. Az első:
$mennyi_sql = "select MenuID from menupont where MenuNev=".$Menu;
Szerintem így lenne helyes (kell az aposztróf):
$mennyi_sql = "select MenuID from menupont where MenuNev='$Menu'";
A másik:
while ($mennyi_le = mysql_fetch_array($mennyi, MYSQL_ASSOC)) {
  $menukimenet[]=$mennyi_le;
}
Ezután hivatkozol a $menukimenet[0]-ra beszúráskor. Ez két okból is hibás. Az egyik az, hogy asszociatív tömböd van, a másik hogy a 0-ás index egy tömb lesz és nem egy érték. $menukimenet[0]['MenuID'] lesz a helyes.