• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

błędne dodawanie tego samego rekordu

VPS Starter Arubacloud
0 głosów
241 wizyt
pytanie zadane 30 sierpnia 2015 w PHP przez KamilloPL Gaduła (3,470 p.)

mam bazę danych z których wyciągam dane ale gdy chce dodać coś nowego to dodaje mi się tylko ostatnia pozycja i nic więcej

pokazuję kod i powiedzcie co może być nie tak?

 

<?php if($_GET['podstrona']=='authors') { ?>
	<h1>AUTHOR's</h1>
	<?php
		if (isset($_POST['insertAuthor'])) {
			
			if (date('Y-m-d') > $_POST['year_of_birth']) {
				$query = $pdo->prepare("INSERT INTO author (first_name, last_name, year_of_birth)
				 VALUES (:first_name, :last_name, :year_of_birth)");
				$query->execute(
					array(':first_name'=>$_POST['first_name'], ':last_name'=>$_POST['last_name'], ':year_of_birth'=>$_POST['year_of_birth'])
				);
			}
			
			if ($pdo->lastInsertId()) {
				echo 'Dodadno nowego autora: <b>'.$_POST['first_name'].' '.$_POST['last_name'].'</b> urodzonego dnia '.$_POST['year_of_birth'];	
				unset($_POST);
			} else {
				echo 'Wystapil blad - popraw dane';
			}
		}
	?>
    
    <form method="post">
    <table>
    	<tr>
			<td><input type="text" name="first_name" id="first_name" placeholder="first_name"
             maxlength="45" value="<?php echo $_POST['first_name']; ?>" /></td>
  			<td><input type='text' name="last_name" id="last_name" maxlength="45" placeholder="last_name"
             value="<?php echo $_POST['last_name']; ?>" required /></td>
       		<td><input type="text" name="year_of_birth" id="year_of_birth" placeholder="year_of_birth"
             value="<?php echo $_POST['year_of_birth']; ?>" required /></td>
            <td><button type="submit" id="insertAuthor" name="insertAuthor">ADD!</button></td>
        </tr>
		<?php
        
            $stmt = $pdo->query("SELECT * FROM author");
              
            foreach($stmt as $row){
				
        ?>
		<tr>
			<td><input type='text' name='first_name' id='first_name' value='<?php echo $row['first_name']; ?>' maxlength='45' /><br /></td>
            <td><input type='text' name='last_name' id='last_name' value='<?php echo $row['last_name']; ?>' maxlenght='45' /><br /></td>
            <td><input type='text' name='year_of_birth' id='year_of_birth' value='<?php echo $row['year_of_birth']; ?>' /><br /></td>
            <td>
                <a href="update.php?id=<?php echo $row['id']; ?>">[EDIT]</a>
                <a href="delete1.php?id=<?php echo $row['id']; ?>">[DELETE]</a>
            </td>
		</tr>
		<?php }
	  
    	  $stmt->closeCursor();
		?> 
      </table>
      


<?php } elseif($_GET['podstrona']=='shelfs') { ?>
 <h1>SHELF's</h1>

 

3 odpowiedzi

+1 głos
odpowiedź 30 sierpnia 2015 przez Comandeer Guru (604,780 p.)
Nie widzę w tym kodzie niczego, co by dodawać miało więcej niż jeden rekord.

Chyba że nie rozumiem pytania?
0 głosów
odpowiedź 30 sierpnia 2015 przez SebastianGomularz Dyskutant (9,370 p.)
jestescie żałosni dajecie mi downvote za to że staram sie pomóc albo próbuje znalezc problem,a sami nic nie robicie i oceniacie
–3 głosów
odpowiedź 30 sierpnia 2015 przez SebastianGomularz Dyskutant (9,370 p.)
Nwm czy to ma coś wspólnego ale w pierwszej linijce masz nie zamknięty nawias
komentarz 30 sierpnia 2015 przez KamilloPL Gaduła (3,470 p.)
napisz mi to kodem bo ja chyba zgłupiałem już
komentarz 30 sierpnia 2015 przez SebastianGomularz Dyskutant (9,370 p.)
<?php  elseif($_GET['podstrona']=='shelfs') {} ?>

 

komentarz 30 sierpnia 2015 przez KamilloPL Gaduła (3,470 p.)
tak ale dalej też jest kod odpowiadaący za shelf'sy i pozniej book'sy wiec chodzi mi o konkretnie dlaczego mi wywala po dodaniu ostatni rekord - wszystko inne działa jak nalezy. może coś z insertem zle robie ?
komentarz 30 sierpnia 2015 przez Comandeer Guru (604,780 p.)

Gwoli wyjaśnienia - to jest konstrukcja typu:

<?php if(true) { ?>
<b>Kod HTML jeśli warunek jest prawdziwy</b>

<?php } ?>

Inna rzecz, że w tym wypadku PHP zachowuje się jak język szablonów (co zresztą ma odzwierciedlenie w jego nazwie: PHP Hypertext Preprocessor)

Inna rzecz, że bardziej czytelna do takich rzeczy jest składnia typu:

<?php if(true): ?>
<b>Kod HTML jeśli warunek jest prawdziwy</b>
<?php endif ?>

 

komentarz 31 sierpnia 2015 przez KamilloPL Gaduła (3,470 p.)

problem leży gdzieś tu 

 

<?php
        
            $stmt = $pdo->query("SELECT * FROM author");
              
            foreach($stmt as $row){
				
        ?>
		<tr>
			<td><input type='text' name='first_name' id='first_name' value='<?php echo $row['first_name']; ?>' maxlength='45' /><br /></td>
            <td><input type='text' name='last_name' id='last_name' value='<?php echo $row['last_name']; ?>' maxlenght='45' /><br /></td>
            <td><input type='text' name='year_of_birth' id='year_of_birth' value='<?php echo $row['year_of_birth']; ?>' /><br /></td>
            <td>
                <a href="update.php?id=<?php echo $row['id']; ?>">[EDIT]</a>
                <a href="delete1.php?id=<?php echo $row['id']; ?>">[DELETE]</a>
            </td>
		</tr>
        <?php
			}
			$stmt->closeCursor();
		?>
      </table>

bo jak robię zwykły exit; przed tym to dodaje wszystko ładnie tak jak chce tylko że nie wyświetla mi nic z bazy danych

jakieś propozycje co może być nie tak'?"

Podobne pytania

0 głosów
3 odpowiedzi 1,233 wizyt
pytanie zadane 7 lipca 2015 w PHP przez Mateusz Analityk Stary wyjadacz (13,710 p.)
0 głosów
1 odpowiedź 3,657 wizyt
0 głosów
1 odpowiedź 217 wizyt

92,980 zapytań

141,943 odpowiedzi

321,189 komentarzy

62,309 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...