• 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

Object Storage Arubacloud
0 głosów
203 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 (601,530 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 (601,530 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,123 wizyt
pytanie zadane 7 lipca 2015 w PHP przez Mateusz Analityk Stary wyjadacz (13,710 p.)
0 głosów
1 odpowiedź 3,512 wizyt
0 głosów
1 odpowiedź 182 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...