Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] nie przekazuje odpowieniej zmiennej
Forum PHP.pl > Forum > Przedszkole
przedzkolak
mam problem bo przekazuje id z tabeli producent a powinien z tabeli model, w obu tabelach jest pole id moze nie maja to byc rozne nazwy??

  1. $sql="SELECT typ, marka, model.id_prod, producent.marka FROM model , producent WHERE model.id_prod=producent.id order by marka, typ ";
  2.  
  3.  
  4.  
  5. <?
  6. while($row=mysql_fetch_array($result))
  7. {
  8. $model=$row['id'];
  9. echo'<tr class="ramkz"<div align="center">';
  10. $models=$row['typ'];
  11. echo'<td class="ramkaz"<div align="center">';
  12.  echo $row['marka'];
  13.  echo '</td>';
  14. echo'<td class="ramkaz"div align="center">';
  15. echo $models;
  16. echo '</td>';
  17. echo'<td class="ramkaz"> <a href="../admin/model_zm.php?id='.$model.' "> <div align="center">zmień</div></td>';
  18. echo'<td class="ramkaz"> <a href="../admin/model_usun.php?id='.$model.' "> <div align="center"> usuń </div></td>';
  19. }
  20. ?>
wujko_thc
warunek zapytania ma chyba błąd
WHERE model.id_prod= <- to, to się chyba jakiejś zmiennej powinno równać...
przedszkolak
nie przekazuje id w ogole ...model_zm.php?id=


mam takie tabele
CREATE TABLE `model` (
`id` int(3) unsigned NOT NULL auto_increment,
`id_prod` int(3) unsigned NOT NULL default '0',
`typ` varchar(20) NOT NULL default '',


CREATE TABLE `producent` (
`id` int(3) NOT NULL auto_increment,
`marka` varchar(15) default '0',
PRIMARY KEY (`id`),


dane ktore sa przekazane przez id do wyswietlenia
  1. <?
  2. $model=$_GET['id'];
  3. $sql="SELECT * FROM model, producent WHERE model.id_prod=producent.id and model.id='$model' ";
  4. $result=mysql_query($sql,$db);
  5. $row=mysql_fetch_array($result);
  6. $id=$row['id'];
  7. $nazwa=$row['marka'];
  8. $typ=$row['typ'];
  9. $model=$row['id'];
  10. ?>
przedzkolak
a moze to wina ze komumny tak samo sie nazywaja w obu tabelach?,
moze ktos zajrzec w powyzszy kod co jest nie tak??
erix
Kod
$model=$row['id'];


A zobacz, czy w tej tablicy masz id? tongue.gif

  1. typ, marka, model.id_prod, producent.marka


Bo tu id nie ma. winksmiley.jpg
przedzkolak
ok, ale teraz przekazuje id z tabeli producent, a ma przekazywac id z tabeli model,

$model=$row['id'];
erix
A co masz w tablicy $row? Nie masz przypadkiem klucza:

Kod
model.id_prod

?
przedzkolak
klucz jest w producent.id i model.id
pest
Struktura tabel:
`model` (`id`, `id_prod`, `typ`)
`producent` (`id`, `marka`)

  1. SELECT typ, marka, model.id_prod, producent.marka
  2. FROM model, producent
  3. WHERE model.id_prod=producent.id
  4. ORDER BY marka, typ;

Takie zapytanie też jest dobre (to takie jak miałeś na początku). Tylko wtedy w kodzie php nie odwołujesz się do pola id, bo takiego nie ma w klauzuli SELECT. Jest pole id_prod, do którego możesz się odwołać przez $row['id_prod'].

Alternatywą jest przypisanie nazwy do pola, czyli:
  1. SELECT typ, marka, model.id_prod AS 'id', producent.marka
  2. FROM model, producent
  3. WHERE model.id_prod=producent.id
  4. ORDER BY marka, typ;

Wtedy do tego pola możesz się odwoływać przez $row['id'].
przedzkolak
ale ja chce przekazać id z tabeli model, a tak jak mam to pobiera id ale z tab producent
erix
Cytat
klucz jest w producent.id i model.id


No to tego klucza użyj, dalej nie rozumiem, w czym masz problem...
przedzkolak
  1. <?php
  2. $model=$_POST['id'];
  3. $typ=$_POST['typ'];
  4. $sql="UPDATE model SET typ='$typ' WHERE id='$model'";
  5. $result=mysql_query($sql,$db);
  6. ?>
PRZEDZKOLAK
dane przekazujetylko niewiemczemu nie zapisuje mi zmian rekordu:( kod wyzej
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.