Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Baza danych, tablica,pętla
Forum PHP.pl > Forum > Przedszkole
Malas
W formularzu robię sobie rozwijaną listę wyboru kategorii jednak w kodzie poniżej mam jakiś błąd, ponieważ rozwijana lista kategorii jest pusta a w bazie posiadam kilka kategorii.
  1. <?php
  2. $kat=mysql_query('SELECT * FROM news_kat ORDER BY id desc');
  3. $kat=mysql_fetch_array($kat);
  4. $kat_tytul=$kat['kat_tytul'];
  5.  
  6.  
  7.    echo '<b>Dodaj newsa</b><br>';
  8.    echo '<form method="POST" action="admin.php?newsy=dopisz">';
  9.      echo '<table border="0" width="100%">';
  10.       echo     '<tr>';
  11.                echo'<td>Tytuł:</td>';
  12.                echo'<td><input type="text" name="tytul" size="64"></td>';
  13.           echo '</tr>';
  14.            echo '<tr>';
  15.                echo '<td>Treść: </td>';
  16.                echo '<td><textarea rows="5" name="tresc" cols="42"></textarea></td>';
  17.            echo '</tr>';
  18.            echo '<tr>';
  19.            echo '<td>Kategoria: </td>';
  20.            echo '<td><select name="kategoria">';
  21.            foreach ($kat_tytul as $key => $value) {
  22.            echo "<option value=\"$key\">$value</option>\n</td>";
  23.            }
  24.            echo '</select';
  25.            echo '</tr>';
  26.            echo '<tr>';
  27.                echo '<td> </td>';
  28.                echo '<td><input type="submit" value="Dodaj"></td>';
  29.            echo '</tr>';
  30.        echo '</table>';
  31.    echo '</form>';
  32. ?>
Pride
  1. <?php
  2. foreach ($kat_tytul as $key => $value) {
  3.           echo '<option value="'.$key.'">'.$value.'</option>\n</td>';
  4.           }
  5. ?>

Może tak?
Malas
Cytat(Pride @ 17.04.2009, 19:29:19 ) *
  1. <?php
  2. foreach ($kat_tytul as $key => $value) {
  3.           echo ''.$value.'\n';
  4.           }
  5. ?>

Może tak?

Nie działa.
Legion
Tak powinno byc ok smile.gif


  1. <?
  2. $kat=@mysql_query('SELECT * FROM news_kat ORDER BY id desc');
  3. while($row=mysql_fetch_array($kat)){
  4.   $id=$row['id']
  5.   $kat_tytul=$row['nazwa']
  6.    echo ('
  7.    <option value="'.$id.'">'.$kat_tytul.'</option>
  8.    ');
  9. }
  10. ?>
Malas
  1. <?php
  2. $kat=@mysql_query('SELECT * FROM news_kat ORDER BY id desc');
  3.  
  4.  
  5.    echo '<b>Dodaj newsa</b><br>';
  6.    echo '<form method="POST" action="admin.php?newsy=dopisz">';
  7.      echo '<table border="0" width="100%">';
  8.       echo     '<tr>';
  9.                echo'<td>Tytuł:</td>';
  10.                echo'<td><input type="text" name="tytul" size="64"></td>';
  11.           echo '</tr>';
  12.            echo '<tr>';
  13.                echo '<td>Treść: </td>';
  14.                echo '<td><textarea rows="5" name="tresc" cols="42"></textarea></td>';
  15.            echo '</tr>';
  16.            echo '<tr>';
  17.            echo '<td>Kategoria: </td>';
  18.            echo '<td><select name="kategoria">';
  19.            while($row=mysql_fetch_array($kat)){
  20.  $id=$row['id']
  21.  $kat_tytul=$row['nazwa']
  22.   echo ('
  23.   <option value="'.$id.'">'.$kat_tytul.'</option>
  24.   ');
  25. }
  26.            echo '</select';
  27.            echo '</tr>';
  28.            echo '<tr>';
  29.                echo '<td> </td>';
  30.                echo '<td><input type="submit" value="Dodaj"></td>';
  31.            echo '</tr>';
  32.        echo '</table>';
  33.    echo '</form>';
  34. }
  35. ?>

ehh parse error jak ja nienawidzę tych apostrofów, cudzysłowów..
Legion
linia 21,22 brak śrdnika
Malas
Hmm niby pojawiło się jakieś pole ale oba są puste blinksmiley.gif
kefirek
Chyba bardziej o to chodzi

  1. <?php
  2. $kat=@mysql_query('SELECT * FROM news_kat ORDER BY id desc');
  3. $link = ""; $sel = "";
  4. while($row=mysql_fetch_array($kat)){
  5. if (isset($site_links)) $sel = ($site_links == $$row['id'] ? " selected" : "");
  6. $link .= "<option value='".$$row['id']."'$sel>".$$row['nazwa']."</option>\n";
  7. }
  8.  
  9. echo "<select name='cat2' style='width:250px;'>
  10. $link</select>";
  11. ?>
Malas
Chcę tylko wyciągnąć z bazy nazwy kategorii i ewentualnie id i przy dodawaniu newsa żebym mógł jakąś wybrać.

edit:
kefirek Twój sposób również nie działa, są dwa pola i oba znowu puste
Legion
Są puste bo najwyraźniej nazwy pól w linii 21 22 różnia sie od tych w bazie przyjrzyj się dobrze
Malas
Cytat(Legion @ 17.04.2009, 19:53:01 ) *
Są puste bo najwyraźniej nazwy pól w linii 21 22 różnia sie od tych w bazie przyjrzyj się dobrze

http://www.bankfotek.pl/image/221581.jpeg
tak to wygląda w bazie
Legion
Tak jak myślałem.

  1. <?
  2. $kat=@mysql_query('SELECT * FROM news_kat ORDER BY id desc');
  3. while($row=mysql_fetch_array($kat)){
  4.   $id=$row['id'];
  5.   $kat_tytul=$row['kat_tytul'];
  6.    echo ('
  7.    <option value="'.$id.'">'.$kat_tytul.'</option>
  8.    ');
  9. }
  10. ?>
Malas
Cytat(Legion @ 17.04.2009, 20:03:08 ) *
Tak jak myślałem.

  1. <?php
  2. $kat=@mysql_query('SELECT * FROM news_kat ORDER BY id desc');
  3. while($row=mysql_fetch_array($kat)){
  4.   $id=$row['id'];
  5.   $kat_tytul=$row['kat_tytul'];
  6.    echo ('
  7.    '.$kat_tytul.'
  8.    ');
  9. }
  10. ?>

działa, wielkie dzięki:)

Ok żeby nie zakładać nowego tematu.
Niby wszystko ok, ale dopiero zauważyłem, że wybranej kategorii w ogóle nie dodaje do bazy danych do kolumny kategoria. Nawet jeżeli standardowo odrazu wybrana jest ostatnio dodana kategoria.
Oto kod całości odpowiedzialnej za newsy:
  1. <?php
  2. if(isset($_GET['newsy']) && $_GET['newsy']=='pokaz')
  3. {
  4.    echo '<b>Wszystkie newsy:</b><br>';
  5.    $link=mysql_query('SELECT * FROM news ORDER BY id desc');
  6.    while($wiersz=mysql_fetch_array($link))
  7.    {
  8.    echo '<b>'.$wiersz['tytul'].'</b>';
  9.    echo ' - ';
  10.    echo $wiersz['data'];
  11.    echo ' - ';
  12.    echo '<a href="admin.php?newsy=edytuj&id='.$wiersz['id'].'">Edytuj</a>';
  13.    echo ' - ';
  14.    echo '<a href="admin.php?newsy=usun&id='.$wiersz['id'].'">Usuń</a>';
  15.    echo "<br>\n";
  16.    }
  17.    
  18. }
  19. elseif(isset($_GET['newsy']) && $_GET['newsy']=='dodaj')
  20. {
  21.  
  22.  
  23. $kat=@mysql_query('SELECT * FROM news_kat ORDER BY id asc');
  24.  
  25.  
  26.    echo '<b>Dodaj newsa</b><br>';
  27.    echo '<form method="POST" action="admin.php?newsy=dopisz">';
  28.      echo '<table border="0" width="100%">';
  29.       echo     '<tr>';
  30.                echo'<td>Tytuł:</td>';
  31.                echo'<td><input type="text" name="tytul" size="64"></td>';
  32.           echo '</tr>';
  33.            echo '<tr>';
  34.                echo '<td>Treść: </td>';
  35.                echo '<td><textarea rows="5" name="tresc" cols="42"></textarea></td>';
  36.            echo '</tr>';
  37.            echo '<tr>';
  38.            echo '<td>Kategoria: </td>';
  39.            echo '<td><select name="kategoria">';
  40.            while($row=mysql_fetch_array($kat)){
  41.  $id=$row['id'];
  42.  $kat_tytul=$row['kat_tytul'];
  43.   echo ('
  44.   <option value="'.$id.'">'.$kat_tytul.'</option>
  45.   ');
  46. }
  47.            echo '</select';
  48.            echo '</tr>';
  49.            echo '<tr>';
  50.                echo '<td> </td>';
  51.                echo '<td><input type="submit" value="Dodaj"></td>';
  52.            echo '</tr>';
  53.        echo '</table>';
  54.    echo '</form>';
  55. }
  56.  
  57. elseif(isset($_GET['newsy']) && $_GET['newsy']=='edytuj' && isset($_GET['id']))
  58. {
  59.    $id=$_GET['id'];
  60.    $link=mysql_query("SELECT * FROM news WHERE id='$id'");
  61.    $wiersz=mysql_fetch_array($link);
  62.    
  63.    
  64.    
  65.    $kat=@mysql_query('SELECT * FROM news_kat ORDER BY id asc');
  66.    
  67.    
  68.  
  69.    echo '<b>Edytuj newsa</b><br>';
  70.    echo '<form method="POST" action="admin.php?newsy=wyedytuj&id='.$wiersz['id'].'">';
  71.        echo '<table border="0" width="100%">';
  72.            echo '<tr>';
  73.                echo '<td>Tytuł:</td>';
  74.                echo '<td><input type="text" name="tytul" size="64" value="'.$wiersz['tytul'].'"></td>';
  75.            echo '</tr>';
  76.            echo '<tr>';
  77.                echo '<td>Treść: </td>';
  78.                echo '<td><textarea rows="5" name="tresc" cols="42">'.$wiersz['tresc'].'</textarea></td>';
  79.            echo '</tr>';
  80.            
  81.            
  82.            
  83.            echo '<tr>';
  84.            echo '<td>Kategoria: </td>';
  85.            echo '<td><select name="kategoria">';
  86.            while($row=mysql_fetch_array($kat)){
  87.  $id=$row['id'];
  88.  $kat_tytul=$row['kat_tytul'];
  89.   echo ('
  90.   <option value="'.$id.'">'.$kat_tytul.'</option>
  91.   ');
  92. }
  93.            echo '</select';
  94.            echo '</tr>';
  95.            
  96.            
  97.            
  98.            
  99.           echo '<tr>';
  100.                echo '<td> </td>';
  101.               echo '<td><input type="submit" value="Edytuj"></td>';
  102.            echo '</tr>';
  103.        echo '</table>';
  104.    echo '</form>';
  105. }
  106.  
  107. elseif(isset($_GET['newsy']) && $_GET['newsy']=='dopisz')
  108. {
  109.    $tytul=$_POST['tytul'];
  110.    $tresc=$_POST['tresc'];
  111.    $kat=$_POST['kategoria'];
  112.    $data=date('d.m.Y, H:i');
  113.  
  114.    mysql_query("INSERT INTO news VALUES(0,'$tytul','$tresc','$data', '$kat')");
  115.    echo 'Pomyślnie dodałem newsa';
  116.  
  117. }
  118.  
  119. elseif(isset($_GET['newsy']) && $_GET['newsy']=='wyedytuj' && isset($_GET['id']))
  120. {
  121.    $tytul=$_POST['tytul'];
  122.    $tresc=$_POST['tresc'];
  123.    $kat=$_POST['kategoria'];
  124.    $id=$_GET['id'];
  125.  
  126.    mysql_query("UPDATE news SET tytul='$tytul' , tresc='$tresc', kategoria='$kat' WHERE id='$id'");
  127.    echo 'Pomyślnie wyedytowałem newsa!';
  128.  
  129. }
  130.  
  131. elseif(isset($_GET['newsy']) && $_GET['newsy']=='usun' && isset($_GET['id']))
  132. {
  133.    $id=$_GET['id'];
  134.  
  135.    mysql_query("DELETE FROM news WHERE id='$id'");
  136.    echo 'Pomyślnie usunąłem newsa numer '.$id.'!';
  137.  
  138. }
  139. ?>
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.