Webstatt.org - Community seit 2006 - 2012 (2024?)

vorselektiertes auswahlfeld?!

user-139
11.02.2007 12:41

also ich möchte das wenn ich nen db-eintrag bearbeite schon ein wert aus meinem auswahlfeld ausgewählt ist, sodas man es nicht bei jedem bearbeiten neu auswaählen muss,.

mein ansatz dazu (bzw der sollte normalerweise schon funktionieren aber ,..)
irgendwo ist der wurm drin ,.


so sieht mein code aus ,.
<?php 
##mysql verdindung,.
##meine automarken in nem array
$automarken = array("arschleckertestauto", "VW", "Audi", "Opel", "Trabant"zwinkern;

$sql = "SELECT * FROM auto_db WHERE id = '".$_GET['edit']."' LIMIT 1" or die(mysql_error());
$query = mysql_query($sql, $link) or die(mysql_error());
$row = mysql_fetch_assoc($query);
?>
<form enctype="multipart/form-data" action="<?php $_SERVER['PHP_SELF']?>" method="post">
<select value="" name="marke">
<?php
foreach ($automarken as $key => $value) {

if($key == $row[marke]){
echo "<option value=\"$key\" selected>$automarken[$key]</option>";
}else{
echo "<option value=\"$key\">$automarken[$key]</option>";
}
}
?>
</select>

<input name="submit" type="submit" class="button" value="Auto eintragen" />
<input type="hidden" name="submit" value="Upload" /> <input name="submit2" type="reset" class="button" value="Reset Fomular" /></td>



und zwar scheiterts irgendie daran (so hab ich das gefühl) das $row[marke] leer is ,.

OS: Windows XP CPU: AMD Athlon XP 3200+ RAM: 512MB DDR PC3200 (Dual Channel) Mainboard: MSI K7n2 Delta-L HDD: 80GB WD Graka:Radeon 9600 Pro =>Alekeijer Straussbuwe
Avatar user-125
11.02.2007 13:13

Hello,
ich würde sagen, der Fehler ist hier:
if($key == $row[marke]){


Durch foreach ( $arr AS $key => $val )
weißt du $key eine Zahl zu (die ID des Arrays). Geht also mit "0" los.
Und "0" != automarke frech

Mach einfach mal $value == $row['marke']. Sollte gehen.

Liebe user-125y aka user-125 aka dionysos
user-139
11.02.2007 15:01

das is komisch , ich möchte doch nur meinen wert aus der db (x) mit dem keywert $key vergleichen , und wenn das stimmt, möchte ich das dieser wert dann als selected ausgegeben wird, ..

das array $automarken und $key sehen dann so aus !
Array
(
[0] => arschleckertestauto
[1] => VW
[2] => Audi
[3] => Opel
[4] => Trabant
)
Array
(
[id] => 185
[marke] => 2
[kfztyp] => auto
[kfzart] => geiler testwagen!
[bild1] =>
[bild2] =>
[bild3] =>
[bild4] =>
[bild5] =>
[status] => noch zu haben
[preis] => spottbilli
[ez] =>
[au] =>
[hu] =>
[km] =>
[kw] =>
[ps] =>
[getriebe] =>
[farbe] =>
[kraftstoff] =>
[ausstattung] =>
)


ausserdem bekomme ich diesen fehler in der foreach schleife!
<b>Notice</b>: Use of undefined constant marke - assumed 'marke' in <b>E:\xampp\xampp\htdocs\projects\autohandel\admin\pages\testsite.php</b> on line <b>31</b><br />

mh komisch eben ma ws kleines geändert jetzt steht im quelltext!
<select value="" name="marke">
<option value="0">arschleckertestauto</option>
<option value="1">VW</option>
<option selected="selected" value="2" >Audi</option>
<option value="3">Opel</option>
<option value="4">Trabant</option>
</select>


im mozilla geht es dennoch nicht ,. es wird immer der erste eintrag angezeigt,. mitm key 0 ,.

OS: Windows XP CPU: AMD Athlon XP 3200+ RAM: 512MB DDR PC3200 (Dual Channel) Mainboard: MSI K7n2 Delta-L HDD: 80GB WD Graka:Radeon 9600 Pro =>Alekeijer Straussbuwe
Avatar user-236
11.02.2007 15:42

mh kann es vielleicht sein, dass in deiner doctype declaration nichts von xhtml steht lächeln falls ja, dann ist das dem Mozilla nämlich nicht egal.

<option selected> blaa </option>

signature in progress
user-139
11.02.2007 16:22

mh komisch , ja hab keinen dringehabt , weil ichs nur testen wollte im IE6 scheints zu gehen Fettes Grinsen
thx für den tipp Fettes Grinsen

OS: Windows XP CPU: AMD Athlon XP 3200+ RAM: 512MB DDR PC3200 (Dual Channel) Mainboard: MSI K7n2 Delta-L HDD: 80GB WD Graka:Radeon 9600 Pro =>Alekeijer Straussbuwe
Avatar user-236
11.02.2007 16:44

na klar Internet Explorer eben Fettes Grinsen

signature in progress
user-139
14.02.2007 14:54

so neues problem und zwar möcht ich die hochgeladenen bilder neu benennen!
so mach ich es..
	$zufall = md5(	((time()*rand())/2)	);
$zufall_kurz = substr($zufall, 0, 7);
if (move_uploaded_file($_FILES["pictures"]["tmp_name"][$key],$upload_dir.$_FILES["pictures"]["name"][$key])) {
rename($upload_dir.$_FILES["pictures"]["name"][$key],$zufall_kurz);
}



allerdings wird dabei die dateiendung mit gekillt,
aloso den richtigen namen hat die datei dann , allrdings keine dateiednung, gibts da ne elegantere mioethode oder muss ich die dateiendung vom namen trennen und später wieder dransetzen?

OS: Windows XP CPU: AMD Athlon XP 3200+ RAM: 512MB DDR PC3200 (Dual Channel) Mainboard: MSI K7n2 Delta-L HDD: 80GB WD Graka:Radeon 9600 Pro =>Alekeijer Straussbuwe
user-139
14.02.2007 16:01

so habs selbst gelöst Fettes Grinsen
foreach ($_FILES["pictures"]["error"] as $key => $error) {
$zufall = md5( ((time()*rand())/2) );
$zufall_kurz = substr($zufall, 0, 7);
if (move_uploaded_file($_FILES["pictures"]["tmp_name"][$key],$upload_dir.$_FILES["pictures"]["name"][$key])) {
$endung = substr($_FILES["pictures"]["name"][$key], -4);
rename($upload_dir.$_FILES["pictures"]["name"][$key],$upload_dir.$zufall_kurz.$endung);
$dateinamen[] = $zufall_kurz.$endung;
}

OS: Windows XP CPU: AMD Athlon XP 3200+ RAM: 512MB DDR PC3200 (Dual Channel) Mainboard: MSI K7n2 Delta-L HDD: 80GB WD Graka:Radeon 9600 Pro =>Alekeijer Straussbuwe
user-309
15.02.2007 21:03


define("marke", "Das was die Automarke ist"zwinkern;


behebt dein Notice Problem - Variablen sowie Konstanten sollten stets vor Verwendung deklariert werden.

user-220
15.02.2007 22:02

Single Quotes -.-

Avatar user-271
15.02.2007 22:46

Konstanten sollte man gross schreiben Fettes Grinsen also nicht zwingend nötig ;D aber es ist sinnvoll Fettes Grinsen

ausserdem kann man es schreiben

define('MARKE','Das ist die Automarke'zwinkern;


btw.: das marke, was bonze verwendet soll keine konstante sein Fettes Grinsen da reichen also single quotes Fettes Grinsen $row['marke'] zwinkern

#!/bin/bash
traurig){ neutral:& };:
user-139
16.02.2007 15:38

so, neues problem , und zwar wenn ich meine einträge editieren möchte, und keine neuen bilder angegeben habe, wird mit ein fehler ausgegeben !
Notice: Undefined offset: 0 in E:\xampp\xampp\htdocs\projects\autohandel\admin\pages\edit.php on line 244

Notice: Undefined offset: 1 in E:\xampp\xampp\htdocs\projects\autohandel\admin\pages\edit.php on line 245

Notice: Undefined offset: 2 in E:\xampp\xampp\htdocs\projects\autohandel\admin\pages\edit.php on line 246

Notice: Undefined offset: 3 in E:\xampp\xampp\htdocs\projects\autohandel\admin\pages\edit.php on line 247

Notice: Undefined offset: 4 in E:\xampp\xampp\htdocs\projects\autohandel\admin\pages\edit.php on line 248


die zeilen sind halt genau die, wo das array mit den bildernamen in die db schreibt ,.
soll ich da einfach ne if abfrge machen ?

OS: Windows XP CPU: AMD Athlon XP 3200+ RAM: 512MB DDR PC3200 (Dual Channel) Mainboard: MSI K7n2 Delta-L HDD: 80GB WD Graka:Radeon 9600 Pro =>Alekeijer Straussbuwe
user-309
16.02.2007 22:52

Den Array einfach vorher komplett definieren, dann klappt das auch mit dem Notice zwinkern

Konstanten sollten wirklich groß geschrieben werden, sollte lediglich als kleiner Denkanstoß dienen.
Aber mal im Ernst, was bringen mir einfache Hochzeichen hier für einen Vorteil?

Avatar user-271
16.02.2007 23:54

bringen nichts....es muss einfach nicht geparsed werden frech

#!/bin/bash
traurig){ neutral:& };: