for-Schleife

barand

Grünschnabel
Hallo,
also, ich habe ein Upload-Script mit einer for-Schleife für mehrere <input type=file> Felder, die eingegebenen Bildnamen werden in einer DB-Tabelle gespeichert, die wie folgt aussieht:

(" 'id', 'name', 'path', 'bild', 'bild2', 'datum', 'time', 'text', 'group' ")

beim insert speichert das Script auch alles korrekt in die DB.

"INSERT INTO `uploads` VALUES (' ','$name','$path','$img_name[0]','$img_name[1]','$datum','$time','$text','$group')";

Nur das Problem ist, dass 2 Felder mit fortlaufender 'id' und dem selben Inhalt angelegt werden, es soll jedoch nur ein Feld angelegt werden.

Ich hoffe ihr versteht was ich meine und könnt mir weiterhelfen

barand
 
Die von dir bereitgestellten Informationen sind leider unzureichend um das Problem lösen zu können. Bitte zeige uns den entsprechenden Quellcode-Ausschnitt.
 
hier mal das Script:
PHP:
if ($_REQUEST['submitted']){

$extlimit = "yes"; 
$limitedext = array(".gif",".jpg",".png",".jpeg");
$log = "";

	for ($i=0; $i<$number_of_uploads; $i++) {
    	if ($img_name[$i] == "") {
        	$log .= "$img[$i] Es wurde kein Bild ausgewählt<br>";
    	}
    	if ($img_name[$i] != "") {
        	if (file_exists("images/$group/$name/$img_name[$i]")) {
            	$log .= "Bildname existiert bereits<br>";
        	} else {
            	if (($sizelim == "yes") && ($img_size[$i] > $size)) {
                	$log .= "Das Bild ist zu gross<br>";
            } else {
				$ext = strrchr($img_name[$i],'.');
				if (($extlimit == "yes") && (!in_array($ext,$limitedext))) {
  					$log .= "<font color=\"red\">$img_name[$i]</font> ist keine Bilddatei.<br>";
  				}else{
                $datum = date("d.m.Y");
                $time = date("H:i:s");
                $text = strip_tags("$text");
                $group = $HTTP_POST_VARS['group'];
                $path=str_replace('/', '', $abpath);
                   
                $sql = "INSERT INTO `uploads` VALUES ('','$name','$path','$img_name[0]','$img_name[1]','$datum','$time','$text','$group')";
				$result = mysql_query($sql, $mysql) or die ("Datenbank Error");
					
					if(!file_exists("images/$group/$name")){
  						#mkdir("images/$group/", 0755);
	 					chmod("images/$group/", 0777);
						mkdir("images/$group/$name/",0755);
	 					chmod("images/$group/$name/", 0777);
	 					mkdir("images/$group/$name/thumbs/", 0755);
	 					chmod("images/$group/$name/thumbs/", 0777);
					}							
                    move_uploaded_file($img[$i], "images/$group/$name/$img_name[$i]") or $log .= "Bild konnte nicht kopiert werden<br>";
					$dir = "images/$group/$name/";
	 				$filename = "$img_name[$i]";
	 				// Größe des Bildes auslesen
					$size=getimagesize("$dir/$filename");
  					$breite=$size[0];
  					$hoehe=$size[1];
  					$neueBreite=100;
  					$neueHoehe=intval($hoehe*$neueBreite/$breite);

  					if($size[2]==1) {
  					// GIF
  					$altesBild=ImageCreateFromGIF("$dir/$filename");
  					$neuesBild=ImageCreateTrueColor($neueBreite,$neueHoehe);
  					ImageCopyResized($neuesBild,$altesBild,0,0,0,0,
					$neueBreite,$neueHoehe,$breite,$hoehe);
  					ImageGIF($neuesBild,"$dir/thumbs/$filename");
  					}

  					if($size[2]==2) {
  					// JPG
  					$altesBild=ImageCreateFromJPEG("$dir/$filename");
  					$neuesBild=ImageCreateTrueColor($neueBreite,$neueHoehe);
  					ImageCopyResized($neuesBild,$altesBild,0,0,0,0,
					$neueBreite,$neueHoehe,$breite,$hoehe);
  					ImageJPEG($neuesBild,"$dir/thumbs/$filename");
  					}

  					if($size[2]==3) {
  					// PNG
 					$altesBild=ImageCreateFromPNG("$dir/$filename");
  					$neuesBild=ImageCreateTrueColor($neueBreite,$neueHoehe);
  					ImageCopyResized($neuesBild,$altesBild,0,0,0,0,
					$neueBreite,$neueHoehe,$breite,$hoehe);
  					ImagePNG($neuesBild,"$dir/thumbs/$filename");
  					}
						$insertGoTo = "dank.php?name=" . $HTTP_POST_VARS['name'];
  						if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {
    					$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    					$insertGoTo .= $HTTP_SERVER_VARS['QUERY_STRING'];
  						}
  						header(sprintf("Location: %s", $insertGoTo));
                    }
                }
            }
        }
	}



echo "<br><table width=\"80%\" bgcolor=\"#EDE3EE\" cellpadding=\"6\" cellspacing=\"6\"><tr>";
echo "<td><img src=\"img/s_notice.png\" border=\"0\"></td><td align=\"center\"><strong>$log</strong>";
echo "<br>Bitte klicken Sie auf <a href=javascript:history.back(1)>zurück</a> und ändern Sie ihre Daten.";
echo "</td></tr></table>";



}
?>
<div class="form">
<form method=POST action=<?php echo $PHP_SELF ?> enctype=multipart/form-data>
<table align="center" width="100%" bgcolor="#EDE3EE" cellpadding="0" cellspacing="2">
  <tr valign="baseline">
    <td align="right">Name:</td>
    <td align="left"><input type="text" name="name" size="20" id="txt"></td>
	<td align="right">Vorname:</td>
	<td align="left"><input type="text" name="vorname" value="" size="20"></td>
  </tr>
  <tr valign="baseline"> 
    <td nowrap align="right">E-Mail:</td>
    <td align="left"><input type="text" name="email" value="" size="20"></td>
	<td align="right">Nachname:</td>
	<td align="left"><input type="text" name="nachname" value="" size="20"></td>
  </tr>
  <tr valign="baseline">
    <td align="right">Gruppe:</td>
    <td align="left"><select name="group">
        <option value="mann">Mann</option>
        <option value="frau">Frau</option>
        <option value="senior">Senioren</option>
        <option value="xl">Xl-Models</option>
		<option value="kind">Kids</option>
      </select></td>
  </tr>
  <tr valign="baseline">
    <td align="right">Text:</td>
    <td align="left"><textarea name="text" cols="30" rows="2"></textarea></td>
  </tr>
<?php
for ($j=0; $j<$number_of_uploads; $j++) {
?>
  <tr valign="baseline">
    <td align="right">Bild:</td>
	<td align="left"><input type=file name=img[] size=20></td>
  </tr>
<?php
}
?>
  <tr valign="baseline"> 
    <td nowrap align="right">&nbsp;</td>
    <td align="left"><input class="formbutton" type="submit" name="submit" value="Abschicken"></td>
  </tr>
</table>
<br>
<input type="hidden" name="submitted" value="true">
</form>
</div>

das Problem ist dass beim Eintrag in die DB 2 Felder angelegt werden:

(9, 'susi', 'images', 'ferrari.jpg', 'Waiting.jpg', '26.07.2005', '23:41:34', 'auch mal schauen', 'frau');
(10, 'susi', 'images', 'ferrari.jpg', 'Waiting.jpg', '26.07.2005', '23:41:34', 'auch mal schauen', 'frau');

es soll aber nur 1 Feld angelegt werden:

(9, 'susi', 'images', 'ferrari.jpg', 'Waiting.jpg', '26.07.2005', '23:41:34', 'auch mal schauen', 'frau');

und ich weiß nicht weiter...
 
dann scheint ja wohl die schleife mehrere male durchzulaufen und deshalb mehrere einträge zu machen.

was steht denn in der $number_of_uploads variabe?

oder prüf mal of die IF-Anweisung vor INSERT INTO stimmt
 
ind der $number_of_uploads steht =2.

aber es funktioniert jetzt, ich musste die "insert" Anweisung aus der Schleife nehmen.
Sorry, hab wohl nen Aussetzer gehabt

ich danke euch...

barand
 
Zurück