webForumDet fria alternativet
Logga in / Bli medlem

For-loop insert

PHP

11 svar · 241 visningar · startad av Melea

Medlem sedan juli 20033 147 inlägg
Trådstart#1

Hejsan!

Har problem med en insert sats där jag vill sätta in X antal poster i databasen.

Såhär ser koden ut just nu:

<? if ($_GET['action'] == 1) { ?>

<form action="?show=match_add&action=2" method="post">
1on1: <input type="text" name="oneonone" class="input"><br>
<input type="submit" value="Next Step" class="submit">
</form>

<? } elseif ($_GET['action'] == 2) { ?>

<form action="admin/match_add.php" method="post">
<?
  $iCount1 = 0;

  for ($i=1; $i<=$_POST['oneonone']; $i++){
    $iCount1++; ?>
<input type="text" name="oneonone_own<?=$i?>" class="input"> 
<input type="text" name="oneonone_enemy<?=$i?>" class="input"> 
<input type="text" name="oneonone_result<?=$i?>" size="3" class="input"><br>
<?
  }
?>
<input type="hidden" name="oneonone_count" value="<?=iCount1?>">

<input type="submit" value="Insert" class="submit">
</form>

Detta funkar utmärkt, får ut antal poster som jag skriver in i action=1. Men när jag väl ska sätta in det i databasen strular det, insertkoden ser ut såhär:

for ($i = 1; $i<= $_POST['oneonone_count']; $i++) {
  $SQL = "INSERT INTO teamswe_matches (oneonone_own, oneonone_enemy, oneonone_result) VALUES ('".$_POST['oneonone_own'.$i]."', '".$_POST['oneonone_enemy'.$i]."', '".$_POST['oneonone_result'.$i]."')"; 
  mysql_query($SQL);
}

Någon som ser på rakt arm vad felet är? Koden ger alltså inget felmeddelande. Den kör sitt race men ingenting sätts in i databasen...

Tack på förhand!

Mvh

Medlem sedan mars 20025 907 inlägg
#2

Prova att skriva ut frågan istället för att köra den. Så ser du om det är något fel i den iaf.

Medlem sedan juli 20033 147 inlägg
#3

echo $sql; ?

Medlem sedan juli 20033 147 inlägg
#4

Man skriver ju
Response.Write SQL
Response.End
i ASP, hur gör man i PHP? :)

Medlem sedan mars 20025 907 inlägg
#5

echo $SQL;
die();

Medlem sedan juli 20033 147 inlägg
#6

Det händer inget när jag lägger in echo$SQL; die();

for ($i = 1; $i<= $_POST['oneonone_count']; $i++) {
  $SQL = "INSERT INTO teamswe_matches (oneonone_own, oneonone_enemy, oneonone_result) VALUES ('".$_POST['oneonone_own'.$i]."', '".$_POST['oneonone_enemy'.$i]."', '".$_POST['oneonone_result'.$i]."')"; 
  echo $SQL;
  die();
  mysql_query($SQL);
}

Mvh

Medlem sedan aug. 20002 975 inlägg
#7

Testa med att ändra till

<input type="hidden" name="oneonone_count" value="<?=$iCount1 ?>">
Medlem sedan juli 20033 147 inlägg
#8

Yesh! Klantigt av mig, tack så mkt, funkar utmärkt nu! ;)

Medlem sedan aug. 20002 975 inlägg
#9

Är det en lokal testserver du kör på, ändra i php.ini så du får med alla felmeddelande och varningar:

error_reporting = E_ALL

display_errors = On

Starta om webbservern efter ändring i php.ini

Annars kan du lägga följande överst i skript du vill felsöka

error_reporting(E_ALL);
ini_set("display_errors", "1");

Då hade du fått reda på var det spökade för dig.

Medlem sedan juli 20033 147 inlägg
#10

Ingen lokal, server hostar cs.nu nordichardware osv, så det är nog inga inställningar som strular...

Tack ändå

Mvh

Medlem sedan aug. 20002 975 inlägg
#11

Jag menade inte att du hade felaktiga inställningar, utan vad jag menade var att när man håller på att utveckla så är det bra om man får alla felmeddelande och notiser utskrivna. Då hade du direkt fått besked om var någonstans du hade ditt fel.

Du kan göra detta genom att i skriptets början lägga följande:

error_reporting(E_ALL);
ini_set("display_errors", "1");

När allt fungerar som det ska kan du ta bort dessa rader.

Medlem sedan juli 20033 147 inlägg
#12

Aha, wow :) Det hjälpte mig något enormt, tack tack!!

253 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)